Skip to content

BG-834: Recurrent cascade#200

Open
ndiezel0 wants to merge 9 commits intomasterfrom
BG-834/customers
Open

BG-834: Recurrent cascade#200
ndiezel0 wants to merge 9 commits intomasterfrom
BG-834/customers

Conversation

@ndiezel0
Copy link
Copy Markdown
Contributor

No description provided.

@ndiezel0 ndiezel0 requested a review from WWWcool March 19, 2026 21:59
Copy link
Copy Markdown
Contributor

@WWWcool WWWcool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не понял в какой момент происходит добавление реккурентного токена к карте/кастумеру - это по идее на получение от провайдера должно работать, но кода нет. Тестов мало, нужен тесты на каскад и подтверждением работы

{genlib, {git, "https://github.com/valitydev/genlib.git", {tag, "v1.1.0"}}},
{woody, {git, "https://github.com/valitydev/woody_erlang.git", {tag, "v1.1.1"}}},
{damsel, {git, "https://github.com/valitydev/damsel.git", {tag, "v2.2.27"}}},
{damsel, {git, "https://github.com/valitydev/damsel.git", {branch, "BG-834/customer_payment"}}},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не забыть

Comment on lines +24 to +25
{ok, Customer} = call(customer_management, 'Create', {#customer_CustomerParams{party_ref = PartyConfigRef}}),
Customer.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ключа идемпотентности нет, в параметрах создания нет привязки, значит если что то пойдет не так - у тебя будет миллиард пустых кастумеров

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Например создание и сразу привязка к платежу? А если платеж не успешен? Я думал чтобы список платежей в кастомере был списком успешных платежей

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

это все верно, но после создания может же быть проблема - а можно делать чтобы у тебя в случае если не было кастумера и нужно создать ты мог в рамках транзакции создать, добавить карту и добавить реккурент - при этом проверяя не было ли уже их - чтобы не было дублей?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Карты и токены добавляются идемпотентно, в этом плане проблем нет

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Идемпотентностью создания самого кастомера (это будет происходить в капи) займется бендер на основе ExternalID

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а этот метод тут тогда нужен?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это для тестов, не вижу смысла ради этого метода рожать отдельный модуль

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

может коммент тогда докинуть? или в иф деф обернуть ?

Comment on lines +24 to +25
{ok, Customer} = call(customer_management, 'Create', {#customer_CustomerParams{party_ref = PartyConfigRef}}),
Customer.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

это все верно, но после создания может же быть проблема - а можно делать чтобы у тебя в случае если не было кастумера и нужно создать ты мог в рамках транзакции создать, добавить карту и добавить реккурент - при этом проверяя не было ли уже их - чтобы не было дублей?

@ndiezel0 ndiezel0 requested a review from WWWcool March 26, 2026 05:21
Comment on lines +24 to +25
{ok, Customer} = call(customer_management, 'Create', {#customer_CustomerParams{party_ref = PartyConfigRef}}),
Customer.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а этот метод тут тогда нужен?

Comment on lines +1964 to +1965
cascade_pipeline_fns(#st{cascade_recurrent_tokens = Tokens, routes = []}) when Tokens =/= undefined ->
{fun(Ctx) -> Ctx end, fun choose_parent_route/1};
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я бы кстати уточнил у бизнеса валидность этого тезиса - может быть с учетом реккурентного каскада нам не нужно сначала на родительский роут идти, а сразу всегда идти по списку учитывая другие критерии?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants