3b4e787
Merge branch 'set-forwarding-on-finish'
Click to expand commit body
* set-forwarding-on-finish: Configure number for inbound calls
Stephen Paul Weber created
3b4e787
Merge branch 'set-forwarding-on-finish'
* set-forwarding-on-finish: Configure number for inbound calls
Stephen Paul Weber created
3b07712
Fixed code to expect 201 but forgot to update tests
Stephen Paul Weber created
f7efec3
Merge branch 'import-to-catapult'
* import-to-catapult: Import newly-purchased numbers to Catapult
Stephen Paul Weber created
6fb4b01
Merge branch 'show-ratecenter-during-signup'
* show-ratecenter-during-signup: Show rate center during signup
Stephen Paul Weber created
9401086
Merge branch 'activated-users-to-finish'
* activated-users-to-finish: Test that registered users get the Registered step Already activated user goes straight to finish
Stephen Paul Weber created
56403f9
Show rate center during signup
Fetch from bandwidth so we can show it to the user, in case they happen to care.
Stephen Paul Weber created
f4ece3c
Test that registered users get the Registered step
Stephen Paul Weber created
56ce853
Already activated user goes straight to finish
If not registered, but activated, they must have paid but failed to get their number setup. Maybe the number was already taken. Maybe they paid manually. In any case we can skip all intervening steps and go straight to buying and configuring their number for them.
Stephen Paul Weber created
0dfe909
Import newly-purchased numbers to Catapult
Since we still use Catapult ("v1") for voice application, we need to import all
numbers there and set their applicationId to match.
Stephen Paul Weber created
eecf454
Configure number for inbound calls
Adds the settings to redis that jmp-fwdcalls will use to route inbound calls. Not done by the sgx registration even though fwdcalls is currently a plug-over, and of course won't be once fwdcalls dies so do it here.
Stephen Paul Weber created
c69a621
Merge branch 'new-signup-credit-card-decline'
* new-signup-credit-card-decline: Block repeated declines for 24 hours Handle credit card decline
Stephen Paul Weber created
4f0083d
Block repeated declines for 24 hours
Stephen Paul Weber created
b0094db
Handle credit card decline
Show user error on decline and give the chance to pick another card.
Stephen Paul Weber created
221f4dc
Merge branch 'new-signup-add-credit-card'
* new-signup-add-credit-card: Happy path for credit card signup Panic should work on any value for error Allow getting default payment method, not just index Object representing the backend SGX to use Stop polluting Object namespace with Blather DSL Work in the presence of em-synchrony Helper to allow ordering phone number from Bandwidth v2 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 Method to bill the plan of a Customer Use Forwardable for simple delegations Helper to allow using sync-style code in a Promise context New signup: go to web to choose credit card OOB helper Reject promise on stanza error Fix typo
Stephen Paul Weber created
8e4c1cc
Happy path for credit card signup
Assuming credit card payment works, you can now activate a new account by paying with one.
Stephen Paul Weber created
7f1efc3
Panic should work on any value for error
Stephen Paul Weber created
35f09f1
Allow getting default payment method, not just index
Stephen Paul Weber created
678283b
Object representing the backend SGX to use
This is what should know about things like the customer id -> jid mapping, etc.
Stephen Paul Weber created
93919ac
Stop polluting Object namespace with Blather DSL
Stephen Paul Weber created
946b50d
Work in the presence of em-synchrony
em-synchrony monkeypatches em-http when loaded. The old functionality is still present, but under different method names.
Stephen Paul Weber created
210ab8c
Helper to allow ordering phone number from Bandwidth v2
Uses their gem which uses Faraday. Set Faraday to em-synchrony so their gem is now using EventMachine but still sync so their code will work unchanged. Wrap all uses of the gem in EM.promise_fiber to get a promise back out of that. Implement a poll helper that can wait until a new order is complete at Bandwidth before continuing. They support an HTTP callback method, but only global on account? This is much easier to work with in our context.
Stephen Paul Weber created
2701f96
Helper to get a promise that resolves after N seconds
Stephen Paul Weber created
82bf4d3
Every payment kind will need the plan, so put it at the top
Stephen Paul Weber created
1448fc7
Use registration pattern for Payment kinds
Instead of a hard-coded case statement.
Stephen Paul Weber created
c08d6ea
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.
Stephen Paul Weber created
e956460
Use Forwardable for simple delegations
Stephen Paul Weber created
3a0f5bf
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.
Stephen Paul Weber created
d1f8b6a
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.
Stephen Paul Weber created
c3795a6
OOB helper
https://xmpp.org/extensions/xep-0066.html
Stephen Paul Weber created
9d3db6e
Reject promise on stanza error
Stephen Paul Weber created
f699177
Fix typo
This result variable got renamed to registered
Stephen Paul Weber created
9c5695e
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
Stephen Paul Weber created
d719f18
Add sourcehut CI
Stephen Paul Weber created
1f37649
Add Rakefile to run all tests
Stephen Paul Weber created
f79ca96
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.
Stephen Paul Weber created
39685c1
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.
Stephen Paul Weber created
8cb7c18
Helpers for doing Electrum RPC
Stephen Paul Weber created
829d69d
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
Stephen Paul Weber created
963e24d
Allow skipping tests without being caught in pry
Stephen Paul Weber created
4be555d
Split logic out into testable objects
Rubocop clean. Good test coverage of helper objects.
Stephen Paul Weber created
e5730b6
Currency aware
Look up the user's plan to find out what currency to charge them in.
Stephen Paul Weber created
ef6cc23
Submit for settlement
We'd like to actually get the money, not just be allowed to.
Stephen Paul Weber created
a0c9834
Rubocop fixes
Stephen Paul Weber created
b12d609
README
Stephen Paul Weber created
2de0c42
Always show money with two decimal places
Stephen Paul Weber created
9dd19f4
Only ask which card to use if there is more than one
Stephen Paul Weber created
579c4fe
Write initial buy credit command
Stephen Paul Weber created
d0f1728
Initial commit
Supports registering with backend SGX via basic iq:register. Does not support data forms version with nice labels. Does not verify billing or anything else yet, just unconditionally registers the user.
Stephen Paul Weber created