# frozen_string_literal: true

require "jennifer"
require_relative "../rantly_extensions/data_extensions"

class DiscoItemsIQ
	# @param redis [FakeRedis]
	def initialize(redis)
		@redis = redis
	end

	include Jennifer.rant(self) {
		jid { bare_jid }
		phone(transient: true) { nanpa_phone }

		stanza derived_from(:jid) do |jid|
			di = Blather::Stanza::DiscoItems.new
			di.type = :get
			di.to = ARGV[0]
			di.node = 'http://jabber.org/protocol/commands'
			di.from = jid
			di
		end

		redis_state derived_from(:jid, :phone), transient: true do |jid, phone|
			@redis.reset!
			@redis.rpush("catapult_cred-#{jid}", 'acct', 'token', 'secret', phone)
		end

		written_state(transient: true) {
			SGXbwmsgsv2.instance_variable_set(:@written, [])
		}
	}
end
