backend_sgx.rb

 1# frozen_string_literal: true
 2
 3class BackendSgx
 4	def initialize(customer_id, jid=CONFIG[:sgx], creds=CONFIG[:creds])
 5		@customer_id = customer_id
 6		@jid = jid
 7		@creds = creds
 8	end
 9
10	def register!(tel)
11		ibr = mkibr(:set)
12		ibr.nick = @creds[:account]
13		ibr.username = @creds[:username]
14		ibr.password = @creds[:password]
15		ibr.phone = tel
16		IQ_MANAGER.write(ibr)
17	end
18
19	def registered?
20		IQ_MANAGER.write(mkibr(:get)).catch { nil }.then do |result|
21			if result&.respond_to?(:registered?) && result&.registered?
22				result
23			else
24				false
25			end
26		end
27	end
28
29protected
30
31	def from_jid
32		"customer_#{@customer_id}@#{CONFIG[:component][:jid]}"
33	end
34
35	def mkibr(type)
36		ibr = IBR.new(type, @jid)
37		ibr.from = from_jid
38		ibr
39	end
40end