# frozen_string_literal: true require "value_semantics/monkey_patched" require_relative "customer_fwd" require_relative "ibr" require_relative "not_loaded" class BackendSgx value_semantics do jid Blather::JID creds HashOf(Symbol => String) from_jid Blather::JID ogm_url Either(String, nil, NotLoaded) fwd Either(CustomerFwd, nil, NotLoaded) transcription_enabled Either(Bool(), NotLoaded) registered? Either(IBR, FalseClass, NotLoaded) end def register!(tel) ibr = IBR.new(:set, @jid) ibr.from = from_jid ibr.nick = creds[:account] ibr.username = creds[:username] ibr.password = creds[:password] ibr.phone = tel IQ_MANAGER.write(ibr) end def stanza(s) s.dup.tap do |stanza| stanza.to = stanza.to.with(domain: jid.domain) stanza.from = from_jid.with(resource: stanza.from.resource) end end def set_ogm_url(url) REDIS.set("catapult_ogm_url-#{from_jid}", url) end end