moneta-api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.yardopts +6 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +31 -0
  8. data/Rakefile +2 -0
  9. data/lib/moneta/api/data_mapper.rb +91 -0
  10. data/lib/moneta/api/requests/authorise_transaction_batch_request.rb +9 -0
  11. data/lib/moneta/api/requests/authorise_transaction_request.rb +15 -0
  12. data/lib/moneta/api/requests/cancel_transaction_batch_request.rb +10 -0
  13. data/lib/moneta/api/requests/cancel_transaction_request.rb +14 -0
  14. data/lib/moneta/api/requests/confirm_transaction_batch_request.rb +10 -0
  15. data/lib/moneta/api/requests/confirm_transaction_request.rb +9 -0
  16. data/lib/moneta/api/requests/create_account_request.rb +65 -0
  17. data/lib/moneta/api/requests/find_accounts_list_request.rb +38 -0
  18. data/lib/moneta/api/requests/find_last_operations_list_request.rb +24 -0
  19. data/lib/moneta/api/requests/find_operations_list_request.rb +26 -0
  20. data/lib/moneta/api/requests/forecast_transaction_request.rb +9 -0
  21. data/lib/moneta/api/requests/get_account_payment_password_challenge_request.rb +16 -0
  22. data/lib/moneta/api/requests/invoice_batch_request.rb +10 -0
  23. data/lib/moneta/api/requests/invoice_request.rb +10 -0
  24. data/lib/moneta/api/requests/payment_request.rb +9 -0
  25. data/lib/moneta/api/requests/refund_request.rb +42 -0
  26. data/lib/moneta/api/requests/transfer_request.rb +9 -0
  27. data/lib/moneta/api/requests/verify_payment_request.rb +10 -0
  28. data/lib/moneta/api/requests/verify_transaction_request.rb +51 -0
  29. data/lib/moneta/api/requests/verify_transfer_request.rb +10 -0
  30. data/lib/moneta/api/response_factory.rb +22 -0
  31. data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +17 -0
  32. data/lib/moneta/api/responses/authorise_transaction_response.rb +10 -0
  33. data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +17 -0
  34. data/lib/moneta/api/responses/cancel_transaction_response.rb +10 -0
  35. data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +17 -0
  36. data/lib/moneta/api/responses/confirm_transaction_response.rb +10 -0
  37. data/lib/moneta/api/responses/create_account_response.rb +19 -0
  38. data/lib/moneta/api/responses/find_account_by_alias_response.rb +16 -0
  39. data/lib/moneta/api/responses/find_account_by_id_response.rb +16 -0
  40. data/lib/moneta/api/responses/find_accounts_list_response.rb +15 -0
  41. data/lib/moneta/api/responses/find_last_operations_list_response.rb +12 -0
  42. data/lib/moneta/api/responses/find_operations_list_response.rb +12 -0
  43. data/lib/moneta/api/responses/forecast_transaction_response.rb +16 -0
  44. data/lib/moneta/api/responses/get_account_payment_password_challenge_response.rb +16 -0
  45. data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +15 -0
  46. data/lib/moneta/api/responses/invoice_batch_response.rb +17 -0
  47. data/lib/moneta/api/responses/invoice_response.rb +10 -0
  48. data/lib/moneta/api/responses/payment_response.rb +10 -0
  49. data/lib/moneta/api/responses/refund_response.rb +10 -0
  50. data/lib/moneta/api/responses/transfer_response.rb +9 -0
  51. data/lib/moneta/api/responses/verify_payment_response.rb +10 -0
  52. data/lib/moneta/api/responses/verify_transaction_response.rb +10 -0
  53. data/lib/moneta/api/responses/verify_transfer_response.rb +10 -0
  54. data/lib/moneta/api/service.rb +18 -0
  55. data/lib/moneta/api/service_methods.rb +150 -0
  56. data/lib/moneta/api/types/account_access_info.rb +24 -0
  57. data/lib/moneta/api/types/account_info.rb +72 -0
  58. data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +47 -0
  59. data/lib/moneta/api/types/authorise_transaction_request_type.rb +19 -0
  60. data/lib/moneta/api/types/cancel_transaction_batch_request_type.rb +42 -0
  61. data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +29 -0
  62. data/lib/moneta/api/types/cancel_transaction_request_type.rb +24 -0
  63. data/lib/moneta/api/types/cancel_transaction_response_type.rb +20 -0
  64. data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +47 -0
  65. data/lib/moneta/api/types/confirm_transaction_request_type.rb +53 -0
  66. data/lib/moneta/api/types/entity.rb +15 -0
  67. data/lib/moneta/api/types/find_operations_list_request_filter.rb +102 -0
  68. data/lib/moneta/api/types/forecast_transaction_response_type.rb +52 -0
  69. data/lib/moneta/api/types/invoice_batch_request_type.rb +46 -0
  70. data/lib/moneta/api/types/invoice_request_type.rb +49 -0
  71. data/lib/moneta/api/types/key_value_attribute.rb +18 -0
  72. data/lib/moneta/api/types/operation_info.rb +88 -0
  73. data/lib/moneta/api/types/operation_info_batch_response_type.rb +27 -0
  74. data/lib/moneta/api/types/operation_info_list.rb +41 -0
  75. data/lib/moneta/api/types/pager.rb +22 -0
  76. data/lib/moneta/api/types/payment_request_type.rb +58 -0
  77. data/lib/moneta/api/types/transaction_batch_response_type.rb +29 -0
  78. data/lib/moneta/api/types/transaction_request_type.rb +55 -0
  79. data/lib/moneta/api/types/transaction_response_type.rb +28 -0
  80. data/lib/moneta/api/types/verify_transaction_response_type.rb +18 -0
  81. data/lib/moneta/api/types/verify_transfer_response_type.rb +32 -0
  82. data/lib/moneta/api/version.rb +5 -0
  83. data/lib/moneta/api.rb +23 -0
  84. data/moneta-api.gemspec +31 -0
  85. data/spec/lib/moneta/api/requests/authorise_transaction_batch_request_spec.rb +71 -0
  86. data/spec/lib/moneta/api/requests/authorise_transaction_request_spec.rb +22 -0
  87. data/spec/lib/moneta/api/requests/create_account_request_spec.rb +16 -0
  88. data/spec/lib/moneta/api/requests/find_operations_list_request_spec.rb +23 -0
  89. data/spec/lib/moneta/api/requests/forecast_transaction_request_spec.rb +19 -0
  90. data/spec/lib/moneta/api/requests/get_account_payment_password_challenge_request_spec.rb +15 -0
  91. data/spec/lib/moneta/api/requests/payment_request_spec.rb +22 -0
  92. data/spec/lib/moneta/api/requests/transfer_request_spec.rb +19 -0
  93. data/spec/lib/moneta/api/response/find_account_by_id_spec.rb +10 -0
  94. data/spec/lib/moneta/api/service_spec.rb +9 -0
  95. data/spec/lib/moneta/api/types/operation_info_spec.rb +23 -0
  96. data/spec/spec_helper.rb +36 -0
  97. data/spec/support/matchers.rb +7 -0
  98. data/spec/support/wsdl +7743 -0
  99. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml +10790 -0
  100. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +10790 -0
  101. data/spec/vcr/moneta_api_requests_authorisetransactionrequest_authorise_transaction/should_success.yml +10790 -0
  102. data/spec/vcr/moneta_api_requests_createaccountrequest/create_account_account_id_.yml +10789 -0
  103. data/spec/vcr/moneta_api_requests_findoperationslistrequest/find_operations_list_account_id_.yml +10794 -0
  104. data/spec/vcr/moneta_api_requests_forecasttransactionrequest/forecast_transaction_payer_currency_.yml +10802 -0
  105. data/spec/vcr/moneta_api_requests_getaccountpaymentpasswordchallengerequest/get_account_payment_password_challenge_.yml +10790 -0
  106. data/spec/vcr/moneta_api_requests_paymentrequest/payment_should_success.yml +10789 -0
  107. data/spec/vcr/moneta_api_requests_transferrequest/transfer_status_.yml +10789 -0
  108. data/spec/vcr/moneta_api_service_find_account_by_id/account_id_.yml +10789 -0
  109. metadata +302 -0
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос регистрации операций в пакетном режиме.
5
+ # Transactions authorisation response in batch processing mode.
6
+
7
+ class AuthoriseTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Array[Moneta::Api::Types::OperationInfoBatchResponseType]] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в AuthoriseTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Moneta::Api::Types::OperationInfoBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос регистрации операции.
5
+ # Transaction authorisation response.
6
+
7
+ class AuthoriseTransactionResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос CancelTransactionBatchRequest.
5
+ # Transactions cancelation response in batch processing mode.
6
+
7
+ class CancelTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Array[Moneta::Api::Types::CancelTransactionBatchResponseType]] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в CancelTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::CancelTransactionBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос CancelTransactionRequest.
5
+ # Transaction cancelation response.
6
+
7
+ class CancelTransactionResponse < Types::CancelTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос завершения операций в пакетном режиме.
5
+ # Transactions confirmation response in batch processing mode.
6
+
7
+ class ConfirmTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::OperationInfoBatchResponseType] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в ConfirmTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::OperationInfoBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Запрос на завершение (подтверждение) операции.
5
+ # Transaction confirmation request.
6
+
7
+ class ConfirmTransactionResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ class CreateAccountResponse
5
+ include Moneta::Api::DataMapper
6
+
7
+ # @return [String] Номер счета в системе МОНЕТА.РУ
8
+ # Account number
9
+ property :account_id
10
+
11
+ def fill(response)
12
+ @account_id = response
13
+
14
+ self
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ, который приходит на запрос FindAccountByAliasRequest.
5
+ # В ответе содержится информация по счету.
6
+ # Account searching by account alias response. Response contains Account information.
7
+
8
+ class FindAccountByAliasResponse
9
+ include Moneta::Api::DataMapper
10
+
11
+ # @return [Moneta::Api::Types::AccountInfo]
12
+ property :account, Moneta::Api::Types::AccountInfo
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ, который приходит на запрос FindAccountByIdRequest.
5
+ # В ответе содержится информация по счету.
6
+ # Account searching by account number response. Response contains Account information.
7
+
8
+ class FindAccountByIdResponse
9
+ include Moneta::Api::DataMapper
10
+
11
+ # @return [Moneta::Api::Types::AccountInfo]
12
+ property :account, Moneta::Api::Types::AccountInfo
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ class FindAccountsListResponse
5
+ # Ответ, который содержит список счетов.
6
+ # Accounts searching response containing the list of accounts.
7
+
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return[Array[Moneta::Api::Types::AccountInfo]]
11
+ property :account, Moneta::Api::Types::AccountInfo
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос FindLastOperationsListRequest.
5
+ # В результате возвращается список последних операций.
6
+ # Transaction searching response.
7
+ # Result contains last transactions list.
8
+
9
+ class FindLastOperationsListResponse < Moneta::Api::Types::OperationInfoList; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос FindOperationsListRequest.
5
+ # В результате возвращается список операций, разбитый по страницам.
6
+ # Transaction searching response.
7
+ # Result contains paged transactions list.
8
+
9
+ class FindOperationsListResponse < Types::OperationInfoList; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос предварительного расчета сумм и комиссий.
5
+ # Может использоваться для информирования пользователя о приблизительной сумме и комиссии операции.
6
+ # Фактические значения могут отличаться, если к моменту проведения операции
7
+ # доступны новые правила тарификации или новые курсы обмена валют.
8
+ # Response for preliminary calculation request.
9
+ # May be used for informing users with approximate amount and fee of transaction.
10
+ # Actual values may differ if newer financial rules and currency exchange rates
11
+ # are available at the moment of transaction processing.
12
+
13
+ class ForecastTransactionResponse < Types::ForecastTransactionResponseType; end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ содержит строку запроса для платежного пароля
5
+ # Response contains of challenge string for payment password
6
+
7
+ class GetAccountPaymentPasswordChallengeResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String] Запрос для платежного пароля
11
+ # / Challenge of payment password
12
+ property :payment_password_challenge
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос получения информации по операции.
5
+ # Transaction information response.
6
+
7
+ class GetOperationDetailsByIdResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::OperationInfo]
11
+ property :operation, Types::OperationInfo
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на выставление счета к оплате в пакетном режиме.
5
+ # Invoice registration response in batch processing mode.
6
+
7
+ class InvoiceBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::TransactionBatchResponseType] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в InvoiceBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::TransactionBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на выставление счета к оплате.
5
+ # Invoice registration response.
6
+
7
+ class InvoiceResponse < Types::TransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос перевода денежных средств.
5
+ # Money transfer registration response.
6
+
7
+ class PaymentResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ по запросу возврата средств, содержащий информацию по возвратной операции.
5
+ # Response containing refund transaction information.
6
+
7
+ class RefundResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос перевода денежных средств.
5
+ # Money transfer registration response.
6
+ class TransferResponse < Types::TransactionResponseType; end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyPaymentResponse < Moneta::Api::Types::VerifyTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyTransactionResponse < Moneta::Api::Types::VerifyTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyTransferResponse < Types::VerifyTransferResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ module Moneta
2
+ module Api
3
+ class Service
4
+ include ServiceMethods
5
+ attr_reader :client
6
+
7
+ def initialize(username, password, params = {})
8
+ @client = Savon.client(prepare_params(username, password, params))
9
+ end
10
+
11
+ private
12
+
13
+ def prepare_params(username, password, params)
14
+ { wsdl: 'https://demo.moneta.ru/services.wsdl', wsse_auth: [ username, password ] }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,150 @@
1
+ module Moneta
2
+ module Api
3
+ module ServiceMethods
4
+ # @param [Moneta::Api::Requests::AuthoriseTransactionRequest]
5
+ # @return [Moneta::Api::Responses::AuthoriseTransactionResponse]
6
+ def authorise_transaction(request)
7
+ call(__method__, request.to_hash)
8
+ end
9
+
10
+ # @param [Moneta::Api::Requests::AuthoriseTransactionBatchRequest]
11
+ # @return [Moneta::Api::Responses::AuthoriseTransactionBatchResponse]
12
+ def authorise_transaction_batch(request)
13
+ call(__method__, request.to_hash)
14
+ end
15
+
16
+ # @param [Moneta::Api::Requests::CancelTransactionRequest]
17
+ # @return [Moneta::Api::Responses::CancelTransactionResponse]
18
+ def cancel_transaction(request)
19
+ call(__method__, request.to_hash)
20
+ end
21
+
22
+ # @param [Moneta::Api::Requests::CancelTransactionBatchRequest]
23
+ # @return [Moneta::Api::Responses::CancelTransactionBatchResponse]
24
+ def cancel_transaction_batch(request)
25
+ call(__method__, request.to_hash)
26
+ end
27
+
28
+ # @param [Moneta::Api::Requests::ConfirmTransactionRequest]
29
+ # @return [Moneta::Api::Responses::ConfirmTransactionResponse]
30
+ def confirm_transaction(request)
31
+ call(__method__, request.to_hash)
32
+ end
33
+
34
+ # @param [Moneta::Api::Requests::ConfirmTransactionBatchRequest]
35
+ # @return [Moneta::Api::Responses::ConfirmTransactionBatchResponse]
36
+ def confirm_transaction_batch(request)
37
+ call(__method__, request.to_hash)
38
+ end
39
+
40
+ # @param [Moneta::Api::Requests::CreateAccountRequest]
41
+ # @return [Moneta::Api::Responses::CreateAccountResponse]
42
+ def create_account(request)
43
+ call(__method__, request.to_hash)
44
+ end
45
+
46
+ # @param [String]
47
+ # @return [Moneta::Api::Responses::FindAccountByAliasResponse]
48
+ def find_account_by_alias(request)
49
+ call(__method__, request)
50
+ end
51
+
52
+ # @param [Moneta::Api::Requests::FindAccountsListRequest]
53
+ # @return [Moneta::Api::Responses::FindAccountsListResponse]
54
+ def find_accounts_list(request)
55
+ call(__method__, request.to_hash)
56
+ end
57
+
58
+ # @param [Moneta::Api::Requests::FindOperationsListRequest]
59
+ # @return [Moneta::Api::Responses::FindOperationsListResponse]
60
+ def find_operations_list(request)
61
+ call(__method__, request.to_hash)
62
+ end
63
+
64
+ # @param [Moneta::Api::Requests::ForecastTransactionRequest]
65
+ # @return [Moneta::Api::Responses::ForecastTransactionResponse]
66
+ def forecast_transaction(request)
67
+ call(__method__, request.to_hash)
68
+ end
69
+
70
+ # @param [Integer]
71
+ # @return [Moneta::Api::Responses::FindAccountByIdResponse]
72
+ def find_account_by_id(id)
73
+ call(__method__, id)
74
+ end
75
+
76
+ # @param [Moneta::Api::Requests::FindLastOperationsListRequest]
77
+ # @return [Moneta::Api::Responses::FindLastOperationsListResponse]
78
+ def find_last_operations_list(request)
79
+ call(__method__, request.to_hash)
80
+ end
81
+
82
+ # @param [Moneta::Api::Requests::GetAccountPaymentPasswordChallengeRequest]
83
+ # @return [Moneta::Api::Responses::GetAccountPaymentPasswordChallengeResponse]
84
+ def get_account_payment_password_challenge(request)
85
+ call(__method__, request.to_hash)
86
+ end
87
+
88
+ # @param [Integer]
89
+ # @return [Moneta::Api::Responses::GetOperationDetailsByIdResponse]
90
+ def get_operation_details_by_id(id)
91
+ call(__method__, id)
92
+ end
93
+
94
+ # @param [Moneta::Api::Requests::InvoiceRequest]
95
+ # @return [Moneta::Api::Responses::InvoiceResponse]
96
+ def invoice(request)
97
+ call(__method__, request.to_hash)
98
+ end
99
+
100
+ # @param [Moneta::Api::Requests::InvoiceBatchRequest]
101
+ # @return [Moneta::Api::Responses::InvoiceBatchResponse]
102
+ def invoice_batch(request)
103
+ call(__method__, request.to_hash)
104
+ end
105
+
106
+ # @param [Moneta::Api::Requests::RefundRequest]
107
+ # @return [Moneta::Api::Responses::RefundResponse]
108
+ def refund(request)
109
+ call(__method__, request.to_hash)
110
+ end
111
+
112
+ # @param [Moneta::Api::Requests::TransferRequest]
113
+ # @return [Moneta::Api::Responses::TransferResponse]
114
+ def transfer(request)
115
+ call(__method__, request.to_hash)
116
+ end
117
+
118
+ # @param [Moneta::Api::Requests::PaymentRequest]
119
+ # @return [Moneta::Api::Responses::PaymentResponse]
120
+ def payment(request)
121
+ call(__method__, request.to_hash)
122
+ end
123
+
124
+ # @param [Moneta::Api::Requests::VerifyPaymentRequest]
125
+ # @return [Moneta::Api::Responses::VerifyPaymentResponse]
126
+ def verify_payment(request)
127
+ call(__method__, request.to_hash)
128
+ end
129
+
130
+ # @param [Moneta::Api::Requests::VerifyTransferRequest]
131
+ # @return [Moneta::Api::Responses::VerifyTransferResponse]
132
+ def verify_transfer(request)
133
+ call(__method__, request.to_hash)
134
+ end
135
+
136
+ # @param [Moneta::Api::Requests::VerifyTransactionRequest]
137
+ # @return [Moneta::Api::Responses::VerifyTransactionResponse]
138
+ def verify_transaction(request)
139
+ call(__method__, request.to_hash)
140
+ end
141
+
142
+ private
143
+
144
+ def call(method, request_message)
145
+ response = client.call(method, { message: request_message })
146
+ ResponseFactory.build(response)
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,24 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий доступ к счету.
5
+ # Account access description type.
6
+
7
+ class AccountAccessInfo
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Boolean] Доступ на изменение свойств счета
11
+ # / Account attributes modification access
12
+ property :access_to_write
13
+
14
+ # @return [Boolean] Доступ на снятие средств со счета
15
+ # / Account debiting access
16
+ property :access_to_taken_out
17
+
18
+ # @return [Boolean] Доступ на зачисление средств на счет
19
+ # / Account crediting access
20
+ property :access_to_taken_in
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,72 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий атрибуты счета в системе МОНЕТА.РУ.
5
+ # Account information container type.
6
+
7
+ class AccountInfo
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String] Номер счета в системе МОНЕТА.РУ
11
+ # / Account number
12
+ property :id
13
+
14
+ # @return [String] Валюта данного счета
15
+ # / Currency of account
16
+ property :currency
17
+
18
+ # @return [Float] Баланс на данном счете
19
+ # / Current balance of account
20
+ property :balance
21
+
22
+ # @return [Float] Доступный баланс на данном счете
23
+ # / Available balance of account
24
+ property :available_balance
25
+
26
+ # @return [Integer] Тип счета в системе МОНЕТА.РУ
27
+ # / Type of account
28
+ property :type
29
+
30
+ # @return [String] Название счета в системе МОНЕТА.РУ. Необязательное поле
31
+ # / Alias of account. Optional.
32
+ property :alias
33
+
34
+ # @return [String] URL после списания средств. Необязательное поле.
35
+ # / URL on debiting. Optional.
36
+ property :on_successful_debit_url
37
+
38
+ # @return [String] URL после зачисления средств. Необязательное поле.
39
+ # / URL on crediting. Optional.
40
+ property :on_successful_credit_url
41
+
42
+ # @return [String] Код проверки целостности данных. Необязательное поле.
43
+ # / Payment form data integrity signature. Optional.
44
+ property :signature
45
+
46
+ # @return [Float] Если баланс счета меньше данного значения, то раз в сутки уходит уведомление об этом событии. Необязательное поле.
47
+ # / Daily notifications if balance is less than threshold. Optional.
48
+ property :low_balance_threshold
49
+
50
+ # @return [Float] Если баланс счета больше данного значения, то раз в сутки уходит уведомление об этом событии. Необязательное поле.
51
+ # / Daily notifications if balance is greater than threshold. Optional.
52
+ property :high_balance_threshold
53
+
54
+ # @return [AccountAccessInfo] Информация о доступе к счету. Информация отдается, если счет является делегированным. Необязательное поле.
55
+ # / Account access information. Available if the account is delegated, otherwise omitted. Optional.
56
+ property :account_access, Moneta::Api::Types::AccountAccessInfo
57
+
58
+ # @return [Integer] Счет-прототип с которого берутся свойства "по умолчанию". Необязательное поле.
59
+ # / Prototype account for default properties values. Optional.
60
+ property :prototype_account_id
61
+
62
+ # @return [String] URL после отмены списания средств. Необязательное поле.
63
+ # / URL on cancelled debit. Optional.
64
+ property :on_cancelled_debit_url
65
+
66
+ # @return [String] URL после отмены зачисления средств. Необязательное поле.
67
+ # / URL on cancelled credit. Optional.
68
+ property :on_cancelled_credit_url
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,47 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий параметры операции в запросах в пакетном режиме.
5
+ # Transaction parameters type for requests in batch processing mode.
6
+
7
+ class AuthoriseTransactionBatchRequestType < Entity
8
+ # @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
9
+ # Если transactional = true, то:
10
+ # при возникновении ошибки все проведенные операции будут отменены
11
+ # можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
12
+ # Если transactional = false, то:
13
+ # при возникновении ошибки все проведенные операции будут сохранены
14
+ # можно проводить любые операции, которые доступны в TransferRequest
15
+ # если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
16
+ # и продолжить выполнение операций дальше
17
+ # / Joining all transfers in batch processing into one transaction. True -- all processed transfers will be rolled back on exceptions, no external transfers are allowed. False -- only current transfer rolled back on exceptions, external transfers are allowed.
18
+ property :transactional
19
+
20
+ # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
21
+ # Используется только при transactional = false
22
+ # / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
23
+ property :exit_on_failure
24
+
25
+ # @return [Array[Moneta::Api::Types::Entity*]] Набор операций, которые необходимо выполнить в одном пакете.
26
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
27
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
28
+ property :transaction
29
+
30
+ # Набор операций, которые необходимо выполнить в одном пакете.
31
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
32
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
33
+ #
34
+ # @param [Moneta::Api::Types::Entity*]
35
+ # @return void
36
+ def add_transaction(item)
37
+ parents = item.class.ancestors
38
+ if parents.include?(Moneta::Api::Types::Entity)
39
+ (@transaction ||=[]).push(item)
40
+ else
41
+ raise TypeError.new("TypeError: #{ item.class } have not parent Moneta::Api::Types::Entity")
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end