# frozen_string_literal: true class WebRegisterManager THIRTY_DAYS = 60 * 60 * 24 * 30 def initialize(redis: REDIS) @redis = redis end def set(jid, tel) @redis.setex("pending_tel_for-#{jid}", THIRTY_DAYS, tel) end def [](jid) @redis.get("pending_tel_for-#{jid}").then do |tel| tel ? HaveTel.new(tel) : ChooseTel.new end end class HaveTel def initialize(tel) @tel = tel end def choose_tel EMPromise.resolve(@tel) end end class ChooseTel def choose_tel Command.finish( "You have not chosen a phone number yet, please return to " \ "https://jmp.chat and choose one now.", type: :error ) end end end