5a1e3cb
s/WebRegisterManager/TelSelections
Stephen Paul Weber created
5a1e3cb
s/WebRegisterManager/TelSelections
Stephen Paul Weber created
36dbdd7
Even if key catapult_jid- exists, this is bonkers, just say no
Stephen Paul Weber created
045da39
Hotfix: arguments in wrong order
Stephen Paul Weber created
589ab72
Hotfix: can't create this until REDIS exists now
Stephen Paul Weber created
f68da9c
The sugar version prevents the promise from being returned
Stephen Paul Weber created
358e866
Merge branch 'finish-btc'
* finish-btc: No more legacy session for BTC Do not lose WebRegisterManager on retart
Stephen Paul Weber created
c49b2c6
No more legacy session for BTC
Set the same key as web register manager, so that on next register jmp.chat the tel we were using in this flow will be used. Not needed if they came from web register, but will still extend expiry in that case and no harm. Clean up pending tel key on Finish.
Stephen Paul Weber created
64b88af
Do not lose WebRegisterManager on retart
Store web registrations in redis. Set an expiry so they don't grow in RAM forever as they previously would have without a restart.
Stephen Paul Weber created
94b7b99
hotfix
Stephen Paul Weber created
7b1379d
Customer Visible Plan Info
We moved some of the currently private things to be public, like currency, and then included things like how much the monthly price is as well.
Christopher Vollick created
5a8273f
Allow Next on Picker Form
Execute works, but next is more right
Christopher Vollick created
2a2047e
Handle False Registration
Turns out my dummy-sgx doesn't act the same as production. Rather than getting a successful registration with no phone, in production I get false, so I need to handle that.
Christopher Vollick created
1f188a7
Need node for spec compliance
And also so Gajim works
Stephen Paul Weber created
497b442
Customer Info
This should allow us, the admins, to query information about a customer without having to dive in and run a couple redis queries and some database queries before getting the full picture of who we're talking to. It also allows the users to request some data about themselves. Balance and phone number are already visible in other places, but their expiry is currently not, and people have been asking about it.
Christopher Vollick created
6ead876
Remove BigDecimal.new
It turns out in newer versions of Ruby this isn't cool anymore. The new way is BigDecimal(value), which is dumb, but whatever...
Christopher Vollick created
d319846
Invite Codes is a Result Form
If we don't do this, the ad-hoc bot won't format the table properly.
Christopher Vollick created
2930055
Update submodule to get trigger for new-user invites
Stephen Paul Weber created
e84191c
Merge branch 'invite-codes'
* invite-codes: Command to list unused invite codes
Stephen Paul Weber created
1e9a5c0
Command to list unused invite codes
Instructions also provide details about how the program works.
Stephen Paul Weber created
4676444
Fix variable reference
Stephen Paul Weber created
39729c2
Check for going over 500 every time
Don't fill redis with keys for users who did not go over
Stephen Paul Weber created
b59275f
Check sample against schema in CI
Stephen Paul Weber created
c407d89
Check config against schema when loading
So we know very quickly why it's not working.
Stephen Paul Weber created
39131ba
It's never been called customer.id
Stephen Paul Weber created
eb754a9
Use CustomerRepo
Stephen Paul Weber created
27a02de
Bring in line with the key from billing_monthly_cronjob
Stephen Paul Weber created
9347725
Customer always has a JID
Stephen Paul Weber created
56f62d1
There might be no customer
Stephen Paul Weber created
a4c8c4a
Quieter tests
Stephen Paul Weber created
4e091b6
Merge branch 'low-balance-auto-top-up'
* low-balance-auto-top-up: Some people have exactly 5 who don't need to be told On low balance, top-up or notify ExpiringLock helper
Stephen Paul Weber created
a9c201d
Some people have exactly 5 who don't need to be told
Stephen Paul Weber created
1b9bf29
On low balance, top-up or notify
On start up, check for users with low balance and NOTIFY about them. LISTEN for such notifications and process by either sending a low-balance warning message or else attempting an auto-top-up as configured. Using NOTIFY/LISTEN because then we can NOTIFY after any INSERT that leaves the balance too low (using a trigger). Doing the sync on start-up in case we missed a NOTIFY during any downtime. Using the Redis lock to prevent spamming a low-balance user in case of many restarts or if they have many small transactions happen in one day.
Stephen Paul Weber created
eaeee71
ExpiringLock helper
For things we want to do only so often, set up a helper to push expiring keys to Redis and check for them.
Stephen Paul Weber created
53d0894
hotfix
Stephen Paul Weber created
88d7cc8
Merge branch 'cancel-timeout'
* cancel-timeout: Timeout is not a fatal error When user cancels the command, respond with canceled
Stephen Paul Weber created
575da6d
Timeout is not a fatal error
If the user does not proceed with a command after N time, we don't hold on to it forever and time out. We cannot return anything to the user because they haven't sent us anything, so just ignore it.
Stephen Paul Weber created
2f33536
When user cancels the command, respond with canceled
If the cancel has not been fully handled in the body of the command, at least respond with canceled status and do not go to sentry.
Stephen Paul Weber created
e1e78a1
Braintree logs
Stephen Paul Weber created
3bccfa1
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
Stephen Paul Weber created
d1a28bd
ErrorToSend => FinalStanza
Stephen Paul Weber created
83603be
Since Command#finish causes an error, a then off the end won't work
Stephen Paul Weber created
b363f2b
Merge branch 'statsd-logging'
* statsd-logging: Use the logger for all gems
Stephen Paul Weber created
2ece5c3
Use the logger for all gems
Stephen Paul Weber created
737a7f5
README Notes for Setup
I ran this setup from a semi-clean environment, and there were some steps I needed to do that weren't captured anywhere.
Christopher Vollick created
80f6aee
Fix usage report range
Show things from all of the start of range (today)
Stephen Paul Weber created
9a1a09e
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.
Stephen Paul Weber created
d799a92
Ask electrum to notify on new BTC addresses
Otherwise we won't know when someone has paid...
Stephen Paul Weber created
71349ef
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.
Stephen Paul Weber created
3471f2d
Merge branch 'logging'
* logging: Slightly better logging
Stephen Paul Weber created
d52e900
Slightly better logging
Import structured logging gem ougai and replace current use of puts/warn with logging calls. Gives us level, timestamp, and formatting for exceptions and/or hash of arbitrary context data. Can do JSON logging if we ever need that, but set to human-readable (with colour if isatty) for now.
Stephen Paul Weber created