# 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