Handle invalid customer id An invalid customer id is an error from braintree, so handle the error and return an empty list of payment methods.
Refactor command list to use composition Also rename buy credit to top up
Add btc_addresses to Customer And use that in registration instead of implementing it inline
Command to get to the credit card settings page
Validate that amount of credit to buy is in valid range
Rename buy-credit to buy credit
When no plan, all plan attributes are nil
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)
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.
Merge branch 'credit-card-bonus' * credit-card-bonus: Insert bonus when paying by credit card
Merge branch 'tel-search-temp' * tel-search-temp: No tel picker yet, so just go to the webpage
Insert bonus when paying by credit card
Merge branch 'bitcoin-tmp' * bitcoin-tmp: Save legacy session for Bitcoin flow
Fix sentry issue SGX-JMP-4 Typo not caught by tests because this method had none. Add a test, fix the typo.
This is not really an error, it just means you're all done
Save legacy session for Bitcoin flow This is not a permanent solution, but for now it will allow Bitcoin flow users to get the same message from the cronjob that legacy web flow users get, and thus complete their signup using the legacy web flow. Eventually we'll want to reverse this and direct every Bitcoin activation via a new end flow.
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.