Handle Empty Admin Menu Response Some automated processes don't care for our menu, and rather than crashing it should just consider our process to be done.
Merge branch 'tx-list' * tx-list: Admin Command Menu + Admin Financial View Transactions List Customer Financials Telephone Link
Admin Command Menu + Admin Financial View I've added a new command to show financial information about the user. But more importantly I've added an infinite admin subsystem which allows me to go into a user and then run multiple commands on them. For now it's just these two info commands, but in the future I'd like to add mutative commands here. Finally, since I sometimes look up multiple users in a pretty short timeframe I made the menu open and if I put something into the list that doesn't parse as one of the actions it instead switches the current user so I don't have to do "cancel", "customer", and then put the next one in. I can just have the session open and put stuff in as needed.
Transactions List Using the new Financials object a user can list their transaction list We only show the user the date, amount, and method.
Customer Financials I've pulled out information about payment methods and bitcoin into its own thing. It's kind of a repository, except that it only exposes fetchers and doesn't load anything generally. There's also a few new methods here that aren't used yet, but will be shortly.
Telephone Link Sometimes I need to go there to look something up or change a setting, and every time I do I have to navigate through the UI to a number I already know. This should make that faster.
Strip fwd value from form before saving
Someone legit hit the 4k limit
Document new search option
A legit user hit 3500. Wow
Merge branch 'state-search' * state-search: Finish state search and add test Add state search - for granularity & jmp-register
Finish state search and add test
Add state search - for granularity & jmp-register Note that this is not quite complete yet, since we need to pull in the STATE_MAP stuff used elsewhere to make it work properly. But it will at least work for every state/province/territory that is not Quebec for now, which is way better than nothing. Quebec users will get the same fallbacks they had before.
Do not log error when hangup/voicemail a call that is already gone
Add customer_id to Sentry where relevant
Error from SGX should not result in an unregistered customer If the SGX fetch fails, this is a problem. Even in the original case this was written for (registration) we have seen strange issues that can come up when the code assumes that an SGX error means they are unregistered. They may or may not be unregistered, and we simply don't know. So we should let the error bubble through and be handled (if possible) upstream.
Use Transfer because Forward doesn't work once answered
Sanity check that uri is possibly valid
Transaction amounts are negative, but cdr charge is positive
Schemas add default rate for customers with no plan