[#447] Resolve "waitlist for pending channel requests"
Closes #447 (closed)
context
- after !528 (merged) if we let our channel reserve drop to 0 (which we might do intentionally to throttle user growth pending performance improvments), users who try to create a channel will simply have their request dropped and be told to try again later
- but we would still like these people to be able to get channels later once we have capacity without having to "try again!"
- this MR introduces a "wait list" that users will be added to that will allow maintainers to go back and manually create channels for them once capacity frees up (which we will measure via #456 (closed) )
changes
data layer
- create
channelRequest
table/model (to store waitlist) - add
channelRequestRepository#addToWaitlist
(to create achannelRequest
record)
repository/execute layer
use UNAVAILABLE
status for channel requests when none available. if user requests a channel and none are available:
- let
channelRegistrar#create
returnsbStatuses.UNAVAILABLE
(instead of genericERROR
) - let
execute#maybeCreateChannel
handle this special error by adding admins to waitlist and returning waitlist command response (but handling other errors with generic error message)
user-facing
update "requestsClosed" command response to mention waitlist
misc
channel phone number is no longer required, so allow it to be null in boost
!
Edited by aguestuser