Skip to content

Commit bbebb93

Browse files
committed
Review fixes
1 parent 7b28a62 commit bbebb93

2 files changed

Lines changed: 23 additions & 11 deletions

File tree

apps/hellgate/src/hg_customer_client.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ get_recurrent_tokens_by_card(PartyConfigRef, BankCardToken) ->
5757
dmsl_domain_thrift:'PartyConfigRef'(),
5858
token(),
5959
{dmsl_domain_thrift:'PaymentRoute'(), token()}
60-
) -> ok.
60+
) -> recurrent_token().
6161
save_recurrent_token_by_card(
6262
PartyConfigRef,
6363
BankCardToken,
6464
{#domain_PaymentRoute{provider = ProviderRef, terminal = TerminalRef}, RecToken}
6565
) ->
6666
#customer_BankCard{id = BankCardID} = find_or_create_bank_card(PartyConfigRef, BankCardToken),
67-
{ok, _} = call(
67+
{ok, SavedToken} = call(
6868
bank_card_storage,
6969
'AddRecurrentToken',
7070
{#customer_RecurrentTokenParams{
@@ -74,7 +74,7 @@ save_recurrent_token_by_card(
7474
token = RecToken
7575
}}
7676
),
77-
ok.
77+
SavedToken.
7878

7979
-spec tokens_to_map([recurrent_token()]) -> cascade_tokens().
8080
tokens_to_map(Tokens) ->

apps/hellgate/src/hg_invoice_payment.erl

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -452,8 +452,10 @@ init_(PaymentID, Params, #{timestamp := CreatedAt} = Opts) ->
452452
[];
453453
BCT ->
454454
case hg_customer_client:get_recurrent_tokens_by_card(PartyConfigRef, BCT) of
455-
[_ | _] = Tokens -> [?cascade_tokens_loaded(Tokens)];
456-
[] -> []
455+
[_ | _] = Tokens ->
456+
[?cascade_tokens_loaded(Tokens)];
457+
[] ->
458+
seed_bank_card_from_parent(PartyConfigRef, BCT, VS0)
457459
end
458460
end;
459461
_ ->
@@ -462,6 +464,18 @@ init_(PaymentID, Params, #{timestamp := CreatedAt} = Opts) ->
462464
Events = [?payment_started(Payment2)] ++ CascadeTokenEvents,
463465
{collapse_changes(Events, undefined, #{}), {Events, hg_machine_action:instant()}}.
464466

467+
seed_bank_card_from_parent(PartyConfigRef, BCT, #{parent_payment := ParentPayment}) ->
468+
case get_recurrent_token(ParentPayment) of
469+
undefined ->
470+
[];
471+
RecToken ->
472+
Route = get_route(ParentPayment),
473+
SavedToken = hg_customer_client:save_recurrent_token_by_card(PartyConfigRef, BCT, {Route, RecToken}),
474+
[?cascade_tokens_loaded([SavedToken])]
475+
end;
476+
seed_bank_card_from_parent(_PartyConfigRef, _BCT, _VS) ->
477+
[].
478+
465479
maybe_inherit_customer_id(undefined, #{parent_payment := ParentPayment}) ->
466480
(get_payment(ParentPayment))#domain_InvoicePayment.customer_id;
467481
maybe_inherit_customer_id(CustomerID, #{parent_payment := ParentPayment}) ->
@@ -2474,28 +2488,26 @@ maybe_save_recurrent_token_to_customer(
24742488
payment = #domain_InvoicePayment{
24752489
id = PaymentID,
24762490
customer_id = CustomerID,
2477-
make_recurrent = MakeRecurrent,
24782491
payer = Payer
24792492
},
24802493
recurrent_token = RecToken
24812494
} = St
24822495
) when CustomerID =/= undefined ->
24832496
InvoiceID = get_invoice_id(get_invoice(get_opts(St))),
24842497
hg_customer_client:add_payment(CustomerID, InvoiceID, PaymentID),
2485-
maybe_save_recurrent_token_to_bankcard(MakeRecurrent, RecToken, Payer, St),
2498+
maybe_save_recurrent_token_to_bankcard(RecToken, Payer, St),
24862499
maybe_link_bankcard_to_customer(CustomerID, Payer);
24872500
maybe_save_recurrent_token_to_customer(
24882501
#st{
24892502
payment = #domain_InvoicePayment{
2490-
make_recurrent = MakeRecurrent,
24912503
payer = Payer
24922504
},
24932505
recurrent_token = RecToken
24942506
} = St
24952507
) ->
2496-
maybe_save_recurrent_token_to_bankcard(MakeRecurrent, RecToken, Payer, St).
2508+
maybe_save_recurrent_token_to_bankcard(RecToken, Payer, St).
24972509

2498-
maybe_save_recurrent_token_to_bankcard(true, RecToken, Payer, St) when RecToken =/= undefined ->
2510+
maybe_save_recurrent_token_to_bankcard(RecToken, Payer, St) when RecToken =/= undefined ->
24992511
case get_bank_card_token(Payer) of
25002512
undefined ->
25012513
ok;
@@ -2504,7 +2516,7 @@ maybe_save_recurrent_token_to_bankcard(true, RecToken, Payer, St) when RecToken
25042516
Route = get_route(St),
25052517
hg_customer_client:save_recurrent_token_by_card(PartyConfigRef, BCT, {Route, RecToken})
25062518
end;
2507-
maybe_save_recurrent_token_to_bankcard(_, _, _, _) ->
2519+
maybe_save_recurrent_token_to_bankcard(_, _, _) ->
25082520
ok.
25092521

25102522
maybe_link_bankcard_to_customer(CustomerID, Payer) ->

0 commit comments

Comments
 (0)