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