1# frozen_string_literal: true
2
3require_relative "../admin_action"
4require_relative "../financial_info"
5require_relative "../form_template"
6
7class AdminAction
8 class Financial
9 def self.call(customer_id, reply:, **)
10 new(customer_id, reply: reply).call
11 end
12
13 def initialize(customer_id, reply:)
14 @customer_id = customer_id
15 @reply = reply
16 end
17
18 def call
19 AdminFinancialInfo.for(@customer_id).then do |financial_info|
20 @reply.call(FormTemplate.render(
21 "admin_financial_info",
22 info: financial_info
23 )).then {
24 pay_methods(financial_info)
25 }.then {
26 transactions(financial_info)
27 }
28 end
29 end
30
31 def pay_methods(financial_info)
32 @reply.call(FormTemplate.render(
33 "admin_payment_methods",
34 **financial_info.to_h
35 ))
36 end
37
38 def transactions(financial_info)
39 @reply.call(FormTemplate.render(
40 "admin_transaction_list",
41 transactions: financial_info.transactions
42 ))
43 end
44 end
45end