XYZ-451: Adds for arbitrary reason_code in general failure - #10
XYZ-451: Adds for arbitrary reason_code in general failure#10nanodirijabl wants to merge 6 commits into
reason_code in general failure#10Conversation
| % Common project dependencies. | ||
| {deps, [ | ||
| {damsel, {git, "https://github.com/valitydev/damsel.git", {branch, "master"}}} | ||
| {damsel, {git, "https://github.com/valitydev/damsel.git", {branch, "XYZ-451/ft/limit-overflow-failure-details"}}} |
| sub = #domain_SubFailure{ | ||
| code = <<"limit_overflow">>, | ||
| sub = #domain_SubFailure{ | ||
| code = <<"limit-that-overflowed">> |
There was a problem hiding this comment.
Это строка и так никогда атомом стать не сможет, давай какой-то существующий атом в отдельный тест.
There was a problem hiding this comment.
Добавил тесткейс с этим случаем. Там трансляция из динамической в статическую происходит по кодпасу дающему {unknown_error, <<"...">>}, что сохраняет старое поведение, но так же остаётся прежнее поведение, что при обратной трансляции из статической ошибки в динамическую превращает в ту же самую динамическую ошибку.
| %% NOTE If were unable to verify code is an existing atom (expected to | ||
| %% be defined by compiling damsel protocol), then we consider code an | ||
| %% arbitrary reason code from general failure struct. | ||
| {unknown_error, ArbitraryCode} when Type =:= 'GeneralFailure' -> | ||
| #payproc_error_GeneralFailure{reason_code = ArbitraryCode}; |
There was a problem hiding this comment.
Если по какому-то стечению обстаятельств у нас ЛимитID будет выглядеть как атом то мы сюда не провалимся (например если его назовут daily к примеру).
There was a problem hiding this comment.
Да, остаётся старое поведение. Тесткейс добавил. В итоге обслуживание reason_code получается совместимым с существующим поведением для неизвестного кода статической ошибки с таплом {unknown_error, <<"...">>}, но позволяет явно указывать произвольный код при формировании всей статической ошибки с использованием этой либы.
No description provided.