9b2e3b1
Refactor top up form to use FormTemplate
Stephen Paul Weber created
9b2e3b1
Refactor top up form to use FormTemplate
Stephen Paul Weber created
0350567
Better datatypes on forms
Stephen Paul Weber created
3c15e92
Welcome message for new users
Stephen Paul Weber created
b6f226f
Fix for new blather version
Stephen Paul Weber created
a7c2ebb
Merge branch 'porting'
* porting: Porting Script Porting Logic Add CommandExecution to BlatherNotify Import Blather Notify and ToForm from JMP Pay Allow User FWD to be Nil Move to New Blather Version with Better IDs Update ruby-bandwidth-iris Gem
Stephen Paul Weber created
052cbfa
Porting Script
This does a few things. It's meant to be run headlessly, but it can also be run by a human if they want to do it manually. So in pursuit of that it has a few options. The defaults ignore informational logs, send exceptions to sentry, warnings to a pubsub channel, and send messages to the customer to tell them the port is finished. But the manual mode logs informational messages, warnings, and errors all to the terminal. And then it can either also log the things it would have said to the customer, or it can send those automatically still. I've also got an option for making fake ports. Yeah, it's just used when testing the thing, but given that I run it that way 90% of the time, it felt weird to just have it floating around in my working dir and having to keep remembering to take it out, commit, put it back, etc. So I just decided I'd put it in here behind a flag.
Christopher Vollick created
5311547
Porting Logic
Ok, so I've built a big tree of states here to represent us trying to figure out what the current situation is in this mad world. Then each one of those leaves has some thing that it does to hopefully move towards the next step. There's also the warnings which are emitted, while also still attempting to make progress. We want to tell people about things, but not get stuck in "busted" mode forever.
Christopher Vollick created
74983b2
Add CommandExecution to BlatherNotify
This follows a single command through a chain of steps and takes care of the flow where sometimes I fetch a form before I submit it, and other times I've already gotten the form on the last step, etc.
Christopher Vollick created
19661cb
Import Blather Notify and ToForm from JMP Pay
These are some helpers I'm going to use to run my porting logic later. I've imported BlatherNotify verbatim here, though I will be making changes in later commits. ToForm on the other hand has been just added to the existing Form refinement we already had, making it a two-way conversion now.
Christopher Vollick created
8bac167
Allow User FWD to be Nil
The data-model supports it, so we probably shouldn't crash
Christopher Vollick created
4866cdf
Move to New Blather Version with Better IDs
This is currently just my branch, but we'll move to another commit after it gets merged. This commit makes it so session IDs and IQ IDs are unique rather than the current state where they're always blather01, blather02, etc. Given that we just start, run roughly the same commands, and then close it meant all of our sessions were predictably numbered, and so we were seeing some previous runs of the script picking up old sessions, etc. Not great! Also, at some point between whenever the last version was and now the API changed for handlers, so we have to do that now. If we don't, the commands just sit there and never respond. Bad. So this makes our extensions more inline with upstream's new API.
Christopher Vollick created
861f4b0
Update ruby-bandwidth-iris Gem
It looks like the commits on this branch were merged to upstream a long time ago, and other changes have been made since which I'm going to need in a moment.
Christopher Vollick created
9a0d773
Show Bitcoin registration info as form not note
Gives it more structure, and also makes cut-paste easier in the app.
Stephen Paul Weber created
1173bfc
Include customer id when onboarding
They don't really know their throwaway onboarding JID anyway. NOTE: they have a customer ID but not a cheogram route, so contact from support must still go via whisper to their JID and not direct to this customer ID!
Stephen Paul Weber created
4eb081a
Disconnect Number on Swap
I decided that when undoing this action I shouldn't delete the new number automatically, and when redoing I probably shouldn't re-delete the new number. This situations are weird, and so the human should probably think criticially here. So what I do instead is only delete the number the first time the action gets run, and then in the other two cases I warn the operator that I didn't delete anything so they can go figure stuff out. I put this `first_time?` logic in the parent because I already know of another place where I'm planning on using it in a different PR.
Christopher Vollick created
9b2a008
Fix Whitespace
I'm going to make changes to this file at some point, but while I was in here I noticed the whitespace was a bit weird. So this change is only whitespace, no logic.
Christopher Vollick created
826454a
Merge branch '3ds-tx'
* 3ds-tx: Privacy.com doesn't even like us anymore 3DS first transaction
Stephen Paul Weber created
f4d974e
Privacy.com doesn't even like us anymore
Stephen Paul Weber created
9a8c6e7
3DS first transaction
Use the new with-amount jmp pay and when they click next check their balance before we charge them, if they did make a transaction already then we can proceed to BillPlan.
Stephen Paul Weber created
445c909
Customer cc limit to 130
Stephen Paul Weber created
d5811da
CDRs for everyone
Stephen Paul Weber created
cd00a32
Porting Zips Can Contain "-"
I use presence of only numerals to guess if a port is Canadian or not. Today we got a Zip+4, which has a dash. Right... that...
Christopher Vollick created
9d529fc
SIM nicknames feature
Added columns to the eSIMs command to now display the nickname of a SIM, if set. Added test for the new columns in sim_repo. Added nicknames column to sims form, and modified to a multiline form.
root21 created
245f384
Don't Count Stanzas Without Body as Reached
We get messages without bodies from time to time as things like delivery receipts. These are great, and we don't want to forward them to the end-user for sure if we're dealing with a reachable number, but we also don't want to count it as a message that reached us. It's a receipt for a thing I did, not a thing the tester did.
Christopher Vollick created
1145cc7
Reachability Command
This creates the keys that the previous commits use, and also reports their current values. It's a pretty sparse command in terms of UX, but only admins will use it so I kept it simple. This also optionally sends the prompt to one of the chosen reachability numbers. It's optional so a human running the command can query the result without looking in redis, but also without spamming their phone with another message.
Christopher Vollick created
aafb948
Track Call Reachability
This intercepts calls that are from the reachability numbers and checks their status. I had to extend the reachability repo a bit because I realized that unlike texts which I just want to do nothing when they're intercepted, for calls I actually have to _return_ something in that case. Due to my short-circuit none of the existing tests needed to be changed, because the calls weren't coming from a reachability number. But then I added two more tests, one to make sure a call from the reachability number works normally if reachability is not being tested for that user, and another that verifies that if we're testing reachability it hangs up and increments the counter, which is the actual point of this patch.
Christopher Vollick created
f74beeb
SMS Reachability Check
On an inbound stanza it checks if the initiator is one of the whitelisted numbers that can perform reachability checks. If not, which virtually all received SMSs won't be, it just runs the code that was already there. If it is, then it does a further check to see if the reachability check is ongoing for this user, and if not it runs the code that was already there. And finally, if the key exists it increments it and otherwise doesn't process the message.
Christopher Vollick created
eeb2432
Fix for nil response
Stephen Paul Weber created
a5c9235
JID cannot contain whitespace
Stephen Paul Weber created
c534d03
Put Chatwoot Link in Admin Info (and link to new JID)
We made a change with the "direct_targets" that made it so support no longer talks to phone numbers, but customer_blah@sgx.example.com So, we no longer need to link to the phone number version of the jid, but we now have this new one. And while we're at it we also have a ticketing system that's based on that same JID, so I'll make a link to that too.
Christopher Vollick created
b8aa8ed
Merge branch 'feature_flags'
* feature_flags: Put CDRs behind a feature flag Store feature flags on user for limiting commands, etc Added a New Command to Display CDRs to Customers
Stephen Paul Weber created
303e839
Put CDRs behind a feature flag
Stephen Paul Weber created
d1dc3e7
Store feature flags on user for limiting commands, etc
Stephen Paul Weber created
82ac670
Added a New Command to Display CDRs to Customers
Created cdr_repo and now call it from a new command in the Bot, then filter the response through a form to display for the customer. Refactored some aspects of lib/cdr.rb.
root21 created
c3579cc
Only try to catch up possible renewals if expired less than 3 months
Stephen Paul Weber created
3cc228e
Changed 'Invite' to 'Referral' where it displays ot the end user.
root21 created
5bdeea5
Reserve TN with bandwith after selection and pass reservation id when ordering
root21 created
6c9d473
Allow passing reservation id to tn order
root21 created
5306300
Log number purchase error
root21 created
c3fe29b
error_list can be a list
root21 created
0476a74
Fix for ruby3
root21 created
9b0dc89
Changed 'Invite' to 'Referral' where it displays ot the end user.
root21 created
a9df70a
fix tests
Stephen Paul Weber created
1a34122
hotfix
Stephen Paul Weber created
d75be0c
Added 'C' to the regex on outgoing calls
This prepares the system for prepending customer IDs with 'c'.
root21 created
30e0c89
Only return command list for bare domain
Stephen Paul Weber created
22d46cf
Revert "Allow local calling area when searching for a general area like a town or state"
LCA is only allowed on number prefix and rate centre search This reverts commit 8433c3e2df6aa066cb5952325464e6b0a3257542.
Stephen Paul Weber created
8433c3e
Allow local calling area when searching for a general area like a town or state
Stephen Paul Weber created
e158f17
Merge branch 'contact-support-directly'
* contact-support-directly: Switch from unbilled to direct targets Allow SGX with a node
Stephen Paul Weber created
67611fa
Command to Manually Add Money to Account
An admin can now add a transaction to an account without having to log into the DB. A few notes: - The transaction ID allows a "%" in it which gets substituted with a unique value. This is so if you've got a transaction value already, like an Interac Transfer or something, you can just put it here. But if I'm making something up like "cash" I don't have to mash the keyboard just to get a good ID. I can just use "cash_%" and be content that I'll get a good value - The notes have a few prefilled values, which is just there for convenience and consistency. They're an open list, though, for manual things. Except on clients that don't support open lists... - There's an option to notify the user. I haven't built that in this commit and will come later. This is so that under normal operation we don't have to message from support and tell them "hey, we've got your money", and even better we don't have to tell them "hey, we've got your money, you may want to go talk to the bot to activate". But if support is already talking to them, we can disable it and tell them things in a more organic way. Like I said, I haven't built that in this commit, though. So, this is a start, at least.
Christopher Vollick created