# frozen_string_literal: true
class AddBitcoinAddress
def self.for(iq, alt_form, customer)
if alt_form.parse(iq.form)[:add_btc_address]
new(iq, customer)
else
DoNot.new(iq)
end
end
def initialize(iq, customer)
@reply = iq.reply
@reply.status = :completed
@customer = customer
end
def write
@customer.add_btc_address.then do |addr|
form.fields = [{
var: "btc_address",
type: "fixed",
label: "Bitcoin Address",
value: addr
}]
BLATHER << @reply
end
end
protected
def form
form = @reply.form
form.type = :result
form.title = "New Bitcoin Address"
form.instructions = "Your new address has been created"
form
end
class DoNot
def initialize(iq)
@reply = iq.reply
@reply.status = :completed
end
def write
BLATHER << @reply
end
end
end