mirror of
https://github.com/valitydev/damsel.git
synced 2024-11-06 17:55:23 +00:00
36907b0e50
* DC-83: add RBKWallet to party management (#311) * DC-83: new exceptions for wallets & contractors (#330) * CDS-57: introduce identity storage service (#338) * HOOK-86: Hooks for wallets (#337) * HG-364 CDS-57 Rename indentity docs erlang namespace. (#339) Renamig is caused by review rbkmoney/cds#55 * HG-364 CDS-57 Simplify cds ident protocol. Move mask functions to API (#340) * HG-371: Introduce simplistic withdrawal processing (#333) * HG-371: add cumulative limits (#341) * add turnover limits to wallet service terms * add some thoughts in form of TODOs * Add rbkmoney to DigitalWalletProvider enum (#343) * DC-92: add ability to compute terms for wallet (#344)
110 lines
3.4 KiB
Thrift
110 lines
3.4 KiB
Thrift
include "base.thrift"
|
||
include "msgpack.thrift"
|
||
include "domain.thrift"
|
||
include "withdrawals_domain.thrift"
|
||
|
||
namespace java com.rbkmoney.damsel.withdrawals.provider_adapter
|
||
namespace erlang wthadpt
|
||
|
||
typedef domain.Failure Failure
|
||
|
||
/**
|
||
* Adapter options.
|
||
*/
|
||
typedef domain.ProxyOptions Options
|
||
|
||
/**
|
||
* Непрозрачное для процессинга состояние адаптера, связанное с определённой сессией взаимодействия с
|
||
* третьей стороной.
|
||
*/
|
||
typedef msgpack.Value InternalState
|
||
|
||
/**
|
||
* Требование адаптера к процессингу, отражающее дальнейший прогресс сессии взаимодействия с третьей
|
||
* стороной.
|
||
*/
|
||
union Intent {
|
||
1: FinishIntent finish
|
||
2: SleepIntent sleep
|
||
}
|
||
|
||
/**
|
||
* Требование завершить сессию взаимодействия с третьей стороной.
|
||
*/
|
||
struct FinishIntent {
|
||
1: required FinishStatus status
|
||
}
|
||
|
||
/**
|
||
* Статус, c которым завершилась сессия взаимодействия с третьей стороной.
|
||
*/
|
||
union FinishStatus {
|
||
/** Успешное завершение взаимодействия. */
|
||
1: Success success
|
||
/** Неуспешное завершение взаимодействия с пояснением возникшей проблемы. */
|
||
2: Failure failure
|
||
}
|
||
|
||
struct Success {
|
||
1: required domain.TransactionInfo trx_info
|
||
}
|
||
|
||
/**
|
||
* Требование прервать на определённое время сессию взаимодействия, с намерением продолжить её потом.
|
||
*/
|
||
struct SleepIntent {
|
||
/** Таймер, определяющий когда следует продолжить взаимодействие. */
|
||
1: required base.Timer timer
|
||
}
|
||
|
||
///
|
||
|
||
/**
|
||
* Данные вывода, необходимые для обращения к провайдеру.
|
||
*/
|
||
struct Withdrawal {
|
||
1: required base.ID id
|
||
2: required Cash body
|
||
3: required Destination destination
|
||
4: optional Identity sender
|
||
5: optional Identity receiver
|
||
}
|
||
|
||
typedef withdrawals_domain.Destination Destination
|
||
typedef withdrawals_domain.Identity Identity
|
||
|
||
struct Cash {
|
||
1: required domain.Amount amount
|
||
2: required domain.Currency currency
|
||
}
|
||
|
||
///
|
||
|
||
/**
|
||
* Результат обращения к адаптеру в рамках сессии.
|
||
*
|
||
* В результате обращения адаптер может решить, следует ли:
|
||
* - завершить сессию взаимодействия с провайдером (FinishIntent); или
|
||
* - просто приостановить на определённое время (SleepIntent), обновив своё состояние, которое
|
||
* вернётся к нему в последующем запросе.
|
||
*/
|
||
struct ProcessResult {
|
||
1: required Intent intent
|
||
2: optional InternalState next_state
|
||
}
|
||
|
||
service Adapter {
|
||
|
||
/**
|
||
* Запрос к адаптеру на проведение взаимодействия с провайдером в рамках платежной сессии.
|
||
*/
|
||
ProcessResult ProcessWithdrawal (
|
||
1: Withdrawal withdrawal
|
||
2: InternalState state
|
||
3: Options opts
|
||
)
|
||
throws (
|
||
)
|
||
|
||
}
|