# frozen_string_literal: true
require_relative "../admin_action"
require_relative "../financial_info"
require_relative "../form_template"
class AdminAction
class Financial
def self.call(customer_id, reply:, **)
new(customer_id, reply: reply).call
end
def initialize(customer_id, reply:)
@customer_id = customer_id
@reply = reply
end
def call
AdminFinancialInfo.for(@customer_id).then do |financial_info|
@reply.call(FormTemplate.render(
"admin_financial_info",
info: financial_info
)).then {
pay_methods(financial_info)
}.then {
transactions(financial_info)
}
end
end
def pay_methods(financial_info)
@reply.call(FormTemplate.render(
"admin_payment_methods",
**financial_info.to_h
))
end
def transactions(financial_info)
@reply.call(FormTemplate.render(
"admin_transaction_list",
transactions: financial_info.transactions
))
end
end
end