~singpolyma/sgx-jmp

ref: 15100634c1fddfa296090193e452d5fdce45f660 sgx-jmp/test/test_registration.rb -rw-r--r-- 17.0 KiB
After SIP reset, offer to change inbound fwd
Move CustomerFwd behind Customer

All the previously-lazy BackendSgx data is now either all loaded or all not
loaded by swapping the sgx_repo used by your CustomerRepo instance.  When not
loaded the fields are filled with bottom values that explode when used.  When
loaded the values are present in RAM and not promises at all.  Most code paths
do not need any of the data, a few need most of it, so this seems like a good
trade-off.  Most code using this object will simply never touch those fields or
care about how they are loaded, etc.

Of course, most of this data isn't even SGX related and should move out of here,
but that would take a data model refactor/migration on the catapult_* schema.
Fix test so you get a better error on failure
Merge branch 'number-search'

* number-search:
  Do not direct back to website to pick new number
  Run rubocop after tests
  Add reference to option to show where the tel is
  Format tel for human reader
  Allow user to search for numbers over XMPP
  s/WebRegisterManager/TelSelections
Do not direct back to website to pick new number

Instead, if number is no longer available keep them in flow and use the number
search tool.
s/WebRegisterManager/TelSelections
Merge branch 'finish-btc'

* finish-btc:
  No more legacy session for BTC
  Do not lose WebRegisterManager on retart
No more legacy session for BTC

Set the same key as web register manager, so that on next register jmp.chat the
tel we were using in this flow will be used.   Not needed if they came from web
register, but will still extend expiry in that case and no harm.

Clean up pending tel key on Finish.
Do not lose WebRegisterManager on retart

Store web registrations in redis.  Set an expiry so they don't grow in RAM
forever as they previously would have without a restart.
Remove BigDecimal.new

It turns out in newer versions of Ruby this isn't cool anymore.
The new way is BigDecimal(value), which is dumb, but whatever...
Customer always has a JID
Merge branch 'command-object'

* command-object:
  ErrorToSend => FinalStanza
  Since Command#finish causes an error, a then off the end won't work
  Refactor commands to have Command and Command::Execution objects
Refactor commands to have Command and Command::Execution objects

Brings the common elements of all commands together, and threads the most useful
state (such as ability to reply) through automatically using the new EMPromise
fiber trampoline.
Merge branch 'btc_spop'

* btc_spop:
  Get new Bitcoin address from Redis set
Get new Bitcoin address from Redis set

This set is populated by a cron job to have only known-good available addresses
in it.
No more "choose next"

Instead, adhoc bot will show the options for actions to take
Set catapult_fwd_timeout on our backend-facing JID

Not on our inbound-facing JID.  This is why we shouldn't be mucking in the SGX's
Redis at all...
Fix Invites with Empty Guard

Turns out every user will start with no attempts, and the code wasn't
handling that case. Oops.
Cheogram should not save the route since signup is not done
Add btc_addresses to Customer

And use that in registration instead of implementing it inline
Next