~singpolyma/sgx-jmp

ref: 3c312ebe28de5743fd0c1ea986cce269c3fb04fe sgx-jmp/sgx_jmp.rb -rw-r--r-- 10.6 KiB
Validate that amount of credit to buy is in valid range
Rename buy-credit to buy credit
Merge branch 'conditionally-show-commands'

* conditionally-show-commands:
  Only show buy credit option if customer has a plan and a credit card
  Show commands conditionally (plus add voicemail record command)
Show commands conditionally (plus add voicemail record command)

Refactor to a factory that allows commands to be shown conditionally, so that
the voicemail record command can only be shown if the customer has a forwarding
target set up.
Merge branch 'tel-search-temp'

* tel-search-temp:
  No tel picker yet, so just go to the webpage
Use before filter to actually come before everything

Otherwise we go in hierarchy order and stanza comes last.
Merge branch 'passthrough-commands'

* passthrough-commands:
  Pass through commands we know the SGX can handle
  Pass everything from SGX to user, not just <message/>
  Remove some of the noise from the command list
Pass through commands we know the SGX can handle
Pass everything from SGX to user, not just <message/>
Remove some of the noise from the command list
Fix copy-paste error

These lines won't work because not processing an iq or anything with a node
here.  Set up sentry in a sensible way for messages.
No tel picker yet, so just go to the webpage

Direct users to the homepage if they haven't selected a tel yet.  Not what we
want eventually, but better than crashing.
Merge branch 'create-reset-sip-account'

* create-reset-sip-account:
  Create or reset SIP account
  Factor out Catapult connection
Create or reset SIP account

New command to create or reset SIP account.  Always try create first because
it's faster and more common, fall back to search the list for our account if
that fails due to conflict.  Password is always randomly generated from the
mnemonicode word list.
Usage command

Customer has a CustomerUsage which can fetch data to build a UsageReport
which returns a jabber:x:data form "table" as per spec for per-day in
the last month.

Minutes come from cdr table in postgresql.
Messages come from redis.
Catch more exception in web-register command and send user to sentry
Add Sentry

Capture in #panic and a few other places, add customer and route context
as well as some initial breadcrumbs in the register command.
Refactor BuyAccountCreditForm

add_to_form no longer needs a promise or a network call, instead we use
a factory to get that data up front and inject the dependency.

New BuyAccountCreditForm#parse to get the relevant data back out of an
XMPP form.

Some changes to Transaction and sgx_jmp.rb to use the new method
semantics.
Merge branch 'count-outbound-messages'

* count-outbound-messages:
  Store customer outbound messages/day for 1 year in redis
Store customer outbound messages/day for 1 year in redis

Storage is a sorted set, with dates as the values and message counts as the
scores.  Use zincrby to increment the message count by 1 on each new message.
Use zremrangebylex to remove all items older than 1 year so the set does not
grow unboundedly.

Dates with known message counts can be found using zrangebylex. Scores can be
had one at a time with zscore.  In redis 6.2+ zrange bylex withscores or zmscore
may also be used, but that is only in Debian experimental at time of writing.
Next