Merge branch 'monthly-billing'
* monthly-billing:
Allow the DB to notify us to bill a customer
Command.execution setter
Bill plan command
Clearer name for lock bypass factory
Clearer name for lock bypass factory
LowBalance returns amount added, if any
Merge branch 'overage-limit'
* overage-limit:
auto_top_up_amount and monthly_overage_limit from CustomerRepo
Move Bandwidth Tn remote operations to BandwidthTnRepo
Use value_semantics to DRY up CustomerRepo
Use NotFound exception for all customer not found cases
auto_top_up_amount and monthly_overage_limit from CustomerRepo
Move load of auto_top_up_amount to the repo, and load monthly_overage_limit in
the same operation.
No low balance if not registered
If cancelled or expired or not-yet-registered, don't auto top up or notify about
low balance.
Merge branch 'rubocop'
* rubocop:
Additional fixes for rubocop 1.10.1
Switch to rubocop 0.89.1
Switch to rubocop 0.89.1
This is the rubocop in new Debian stable
Bring in line with the key from billing_monthly_cronjob
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
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.