disco_info_iq.rb

 1# frozen_string_literal: true
 2
 3require "jennifer"
 4require_relative "../rantly_extensions/data_extensions"
 5
 6class DiscoInfoIQ
 7	# @param redis [FakeRedis]
 8	def initialize(redis)
 9		@redis = redis
10	end
11
12	include Jennifer.rant(self) {
13		jid { bare_jid }
14		phone(transient: true) { nanpa_phone }
15		target_node { choose(nanpa_phone, nil) }
16
17		stanza derived_from(:target_node, :jid) do |target_node, jid|
18			iq = Blather::Stanza::DiscoInfo.new(:get)
19			iq.to = target_node ? "#{target_node}@component" : "component"
20			iq.from = jid
21			iq
22		end
23
24		redis_state derived_from(:jid, :phone), transient: true do |jid, phone|
25			@redis.reset!
26			@redis.set("catapult_jid-", "HERE")
27			@redis.set("catapult_jid-#{phone}", jid)
28			@redis.rpush("catapult_cred-#{jid}", 'acct', 'token', 'secret', phone)
29		end
30
31		written_state(transient: true) {
32			SGXbwmsgsv2.instance_variable_set(:@written, [])
33		}
34	}
35end