Class: Vpago::PaywayV2::PayoutsParamsConstructor
- Inherits:
-
Object
- Object
- Vpago::PaywayV2::PayoutsParamsConstructor
- Defined in:
- lib/vpago/payway_v2/payouts_params_constructor.rb
Instance Attribute Summary collapse
-
#payment ⇒ Object
readonly
Returns the value of attribute payment.
-
#payouts ⇒ Object
readonly
Returns the value of attribute payouts.
Instance Method Summary collapse
- #build_payouts_from_payment ⇒ Object
- #call ⇒ Object
- #format_payouts(payouts) ⇒ Object
-
#group_payouts(payouts) ⇒ Object
group & sum amount by acc number.
-
#initialize(payment) ⇒ PayoutsParamsConstructor
constructor
A new instance of PayoutsParamsConstructor.
Constructor Details
#initialize(payment) ⇒ PayoutsParamsConstructor
Returns a new instance of PayoutsParamsConstructor.
6 7 8 9 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 6 def initialize(payment) @payment = payment @payouts = payment.payouts.includes(:payout_profile) end |
Instance Attribute Details
#payment ⇒ Object (readonly)
Returns the value of attribute payment.
4 5 6 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 4 def payment @payment end |
#payouts ⇒ Object (readonly)
Returns the value of attribute payouts.
4 5 6 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 4 def payouts @payouts end |
Instance Method Details
#build_payouts_from_payment ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 18 def build_payouts_from_payment payouts.each_with_object([]) do |payout, payouts_hash| payouts_hash << { acc: payout.payout_profile.bank_account_number, amt: payout.amount } end end |
#call ⇒ Object
11 12 13 14 15 16 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 11 def call payouts = build_payouts_from_payment payouts = group_payouts(payouts) format_payouts(payouts) end |
#format_payouts(payouts) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 37 def format_payouts(payouts) payouts.map do |payout| { acc: payout[:acc], amt: format('%.2f', payout[:amt]) } end end |
#group_payouts(payouts) ⇒ Object
group & sum amount by acc number.
28 29 30 31 32 33 34 35 |
# File 'lib/vpago/payway_v2/payouts_params_constructor.rb', line 28 def group_payouts(payouts) payouts.group_by { |item| item[:acc] }.map do |acc, items| { acc: acc, amt: items.sum { |item| item[:amt] } } end end |