# frozen_string_literal: true
class WebRegisterManager
def initialize
@tel_map = Hash.new { ChooseTel.new }
end
def []=(jid, tel)
@tel_map[jid.to_s] = HaveTel.new(tel)
end
def [](jid)
@tel_map[jid.to_s]
end
def choose_tel(iq)
self[iq&.from&.stripped].choose_tel(iq)
end
class HaveTel
def initialize(tel)
@tel = tel
end
def choose_tel(iq)
EMPromise.resolve([iq, @tel])
end
end
class ChooseTel
def choose_tel(iq)
reply = iq.reply
reply.status = :completed
reply.note_type = :info
reply.note_text =
"You have not chosen a phone number yet, please return to " \
"https://jmp.chat and choose one now."
EMPromise.reject(reply)
end
end
end