TD-550: Defines business exceptions for rollback method (#33)

This commit is contained in:
Aleksey Kashapov 2023-04-14 10:10:09 +03:00 committed by GitHub
parent e46f732ae3
commit bbd2c0dce0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -84,9 +84,9 @@ service Limiter {
Clock Hold(1: LimitChange change, 2: Clock clock, 3: LimitContext context) throws ( Clock Hold(1: LimitChange change, 2: Clock clock, 3: LimitContext context) throws (
1: LimitNotFound e1, 1: LimitNotFound e1,
3: base.InvalidRequest e2 3: base.InvalidRequest e2,
4: InvalidOperationCurrency e3 4: InvalidOperationCurrency e3,
5: OperationContextNotSupported e4 5: OperationContextNotSupported e4,
6: PaymentToolNotSupported e5 6: PaymentToolNotSupported e5
) )
@ -100,7 +100,20 @@ service Limiter {
Clock Rollback(1: LimitChange change, 2: Clock clock, 3: LimitContext context) throws ( Clock Rollback(1: LimitChange change, 2: Clock clock, 3: LimitContext context) throws (
1: LimitNotFound e1, 1: LimitNotFound e1,
2: LimitChangeNotFound e2, 2: LimitChangeNotFound e2,
3: base.InvalidRequest e3 3: base.InvalidRequest e3,
/*
* Исключения бизнес-логики повторяются для `Rollback` с целью
* согласованности контракта при вызове метода с тем же контекстом что
* и в методе `Hold`.
* То есть клиенту при последовательном обращении к методам удержания и
* отката с одними и теми же контекстом и идентификаторами изменений
* гарантируется что те же самые ошибки бизнес-логики будут явно
* сообщены, а операция отката не будет пытаться найти и изменить
* состояния не удержанного изменения.
*/
4: InvalidOperationCurrency e4,
5: OperationContextNotSupported e5,
6: PaymentToolNotSupported e6
) )
} }