Only show buy credit option if customer has a plan and a credit card
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.
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 sentry issue SGX-JMP-4 Typo not caught by tests because this method had none. Add a test, fix the typo.
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.
This is not really an error, it just means you're all done
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.
Factor out Catapult connection So that every object which needs to talk to Catapult does not need to know everthing about it.
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.
Add missing require To allow these modules to be used in isolation (especially when testing).
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.
Merge branch 'wording' * wording: Update instructions to be closer to what is in current web signup
Disco info with XEP-0157 Allows us to advertise support address, for eventual inclusion in Cheogram adhoc bot help output.