Refactor web-register to use lib/command
Move CustomerFwd behind Customer All the previously-lazy BackendSgx data is now either all loaded or all not loaded by swapping the sgx_repo used by your CustomerRepo instance. When not loaded the fields are filled with bottom values that explode when used. When loaded the values are present in RAM and not promises at all. Most code paths do not need any of the data, a few need most of it, so this seems like a good trade-off. Most code using this object will simply never touch those fields or care about how they are loaded, etc. Of course, most of this data isn't even SGX related and should move out of here, but that would take a data model refactor/migration on the catapult_* schema.
Merge branch 'command-object' * command-object: ErrorToSend => FinalStanza Since Command#finish causes an error, a then off the end won't work Refactor commands to have Command and Command::Execution objects
Refactor commands to have Command and Command::Execution objects Brings the common elements of all commands together, and threads the most useful state (such as ability to reply) through automatically using the new EMPromise fiber trampoline.
Factor out CustomerRepo Using the Repository pattern to encapsulate the fetch and create operations on the persistence layer for a domain object. These were not really factories in the classic sense, but rather "fetch from persisitence layer" methods, and so they now have a home.
Alt top up command To show mailing address, eTransfer address, Bitcoin addresses, and allow generating a new Bitcoin address.
Refactor command list to use composition Also rename buy credit to top up
Command to get to the credit card settings page
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)
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.