~singpolyma/sgx-jmp

No Settled Transactions is 0, not Null

Unexpectedly this doesn't return either no columns or a column with a
value of 0, but instead a column with no value...
Merge branch 'message-limits'

* message-limits:
  Block outgoing messages when expired
  Contacting support is not billable
  Use TrustLevel to determine daily quota
  Refactor message limits, change to 500/day
Block outgoing messages when expired
Contacting support is not billable
Use TrustLevel to determine daily quota
Refactor message limits, change to 500/day
CallAttempt needs customer
JID Switch

This allows a customer to change their JID, but it's a bit raw.
In practice I don't expect anyone to actually run this directly, instead
cheogram covers with with a friendlier and safer version.

This is just the business.
Merge branch 'block-calls-when-expired'

* block-calls-when-expired:
  Block voice calls when account is expired
  Refactor CallAttempt factory to use registration pattern
Revert "Merge branch 'three_d_secure'"

This reverts commit 36f441c031a5318385ec78d7d2e021a8e2fab186, reversing
changes made to 3b0ae3c9387d3be41b30bd6dd4552ff0a841d8ed.
Merge branch 'three_d_secure'

* three_d_secure:
  Send 3DS id when making a transaction
Block voice calls when account is expired

Allow for "transitional" (no plan) users for now, because we still have a bunch
of those.
Refactor CallAttempt factory to use registration pattern
Need repo too during bill plan command
Wrap the connection yielded from a transaction
Use trampoline instead of custom fiber
Merge branch 'change-billing-lock'

* change-billing-lock:
  ExpiringLock instead of require expired
  Atomic ExpiringLock
Send 3DS id when making a transaction
ExpiringLock instead of require expired

We *want* to try billing a little before expiry, to prevent the account lapsing.
So use an ExpiringLock to prevent double-billing races.
Next