maintainer can recycle channel via cli

Value

  • we accumulate a lot of stale channels when we make them to demo the app then let them lie orphaned, costing us $1/mo
  • it would be nice to be able to have a cli command that would put these channels back in the pool of inactive but ready-to-be-distributed channels to give out to new users

Behavior

GIVEN an instance maintainer using boost

  • WHEN the maintainer issues boost help
  • THEN they should see recycle listed as one of the command options

GIVEN two existing but unused channels #foo and #bar with phone numbers +15555555555 and +14444444444 respectively*

  • WHEN a signalboost maintainer issues the command `boost recycle "+15555555555,+14444444444"
  • THEN the system sends a notification to all admins and subscribers that the channel is being recycled due to lack of use
  • AND THEN the system
    • deletes all channel, membership, and messageCount records pertaining to the channel phone number
    • updates the phone number's status from ACTIVE to VERIFIED
  • NOW WHEN:
    • a maintainer issues the command boost list-channels, #foo and #bar do not appear
    • a maintainer issues the command boost list-numbers --inactive, +15555555555 and +14444444444 both appear
    • an admin of the recycled channel sends a message to #foo, it is not broadcast
    • a subscriber of the recycled channel sends INFO to #foo, they get an unauthorized message in response

GIVEN the above

  • WHEN database deletions fail
  • THEN the maintainers of the signalboost instance (who should all be admins of the signup channel for this instance) receive a signal message that channel recycling failed

* these channels would be visible to an admin issuing boost list-channels and be identifiable as unused by low subscriber and messageCount metrics

Scope

  • this card does not include completely deleting all traces of channels (that work is left to #106 (closed) )
Edited by aguestuser