Helper to get a promise that resolves after N seconds
Every payment kind will need the plan, so put it at the top
Use registration pattern for Payment kinds
Instead of a hard-coded case statement.
Method to bill the plan of a Customer
Bills their balance for the cost of one month of plan.
Activates the plan by insert into plan_log, unless already active in which case
extends current plan by one month.
Use Forwardable for simple delegations
Helper to allow using sync-style code in a Promise context
This helper spins up a fiber and returns an unresolved EMPromise, then runs the
passed-in block inside the fiber and fulfills the promise with the result of the
block. Because nothing is looking for the Fiber to return it is free to act as a
trampoline for EMPromise#sync and other fiber-sync-style code that does not
block the EM reactor.
New signup: go to web to choose credit card
This step, if chosen, directs the user to the jmp-pay webapp to add a credit
card. It includes an OOB element for use by user agents that can handle
that (possibly for webview embed, etc) with a note-based fallback as per XEP.
Once the user chooses "next" the code checks if they have actually added a card,
and if so continues to a yet-unimplemented step and if not repeats the
instruction to go to the web app.
Reject promise on stanza error
Fix typo
This result variable got renamed to registered
Merge branch 'register-command-first-pass'
* register-command-first-pass:
Add sourcehut CI
Add Rakefile to run all tests
Initial registration flow for Bitcoin
Registrations that start on the web will have a tel selected already
Helpers for doing Electrum RPC
Add helper to fetch current BTC sell prices
Allow skipping tests without being caught in pry
Add Rakefile to run all tests
Initial registration flow for Bitcoin
This is the Bitcoin "happy path" where there is already a tel and a customer_id.
Gets all the way to generating a BTC address for payment and quoting an amount.
Stubs out flows for credit card and activation code as well, but does not
implement those flows.
TBD: after bitcoin payment comes in and jmp-pay activates the account, we should
come back here to actually buy the number, select a new one if no longer
available, etc.
Registrations that start on the web will have a tel selected already
So, manage any already-known tel selections and allow registration to use them
right away. In the future this will fall back to letting the user search for a
tel over XMPP, but that is not implemented here.
Helpers for doing Electrum RPC
Add helper to fetch current BTC sell prices
Scrapes the sell price for Bitcoin from canadianbitcoins.com
USD price is done by converting this CAD sell price to USD via openexchangerates
Allow skipping tests without being caught in pry
Split logic out into testable objects
Rubocop clean. Good test coverage of helper objects.
Currency aware
Look up the user's plan to find out what currency to charge them in.