moneta-api 1.12.8 → 1.13.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/moneta/api/requests/verify_payment_batch_request.rb +9 -0
- data/lib/moneta/api/responses/verify_payment_batch_response.rb +16 -0
- data/lib/moneta/api/service_methods.rb +6 -0
- data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +1 -38
- data/lib/moneta/api/types/batch_request_type.rb +52 -0
- data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +4 -33
- data/lib/moneta/api/types/payment_batch_request_type.rb +10 -0
- data/lib/moneta/api/types/transfer_batch_request_type.rb +1 -38
- data/lib/moneta/api/version.rb +1 -1
- data/lib/moneta/api.rb +4 -0
- data/spec/lib/moneta/api/requests/verify_payment_batch_request_spec.rb +74 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_.yml +15321 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_forecast_.yml +15321 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_transaction_.yml +15321 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_.yml +15330 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_count_.yml +15330 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_first_forecast_.yml +15330 -0
- data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +15330 -0
- metadata +24 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec25e8159efc74bcff544e4bc1a8d85ce7105c53
|
4
|
+
data.tar.gz: 22f5740d0704eb41743b68ae454f9b368913b94c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fbef24219211082d2d26a74caceaac298f84afe0e965655321861753412b8b9773a4d894dcfcc0e0379c4239f382dccf9e9a2c41200713249b980a3b600fad1
|
7
|
+
data.tar.gz: 7509680aca56558cce136edf35faf6a40524534f084b75f632d656f796b944ac2f6df377afe59517cfb96f03e9a7d62173775105a6a10088cd21022e5687429f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
module Moneta
|
2
|
+
module Api
|
3
|
+
module Requests
|
4
|
+
# Запрос возможности провести операцию в системе МОНЕТА.РУ. Запрос выполняется в пакетном режиме.
|
5
|
+
# Transaction validation request. Request in batch mode.
|
6
|
+
class VerifyPaymentBatchRequest < Types::PaymentBatchRequestType; end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Moneta
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
# Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ. Ответ в пакетном режиме.
|
5
|
+
# Response to a transaction validation request. Response in batch mode.
|
6
|
+
class VerifyPaymentBatchResponse
|
7
|
+
include Moneta::Api::DataMapper
|
8
|
+
|
9
|
+
# @return [Array[Moneta::Api::Types::VerifyTransactionResponseType]] Детали операций, либо описание ошибок. Порядок соответствует набору операций,
|
10
|
+
# переданных в VerifyPaymentBatchRequest.
|
11
|
+
# Either information about transactions or error descriptions in the same order as in the VerifyPaymentBatch request.
|
12
|
+
property :transaction, type: Moneta::Api::Types::VerifyTransactionResponseType
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -133,6 +133,12 @@ module Moneta
|
|
133
133
|
call(__method__, request)
|
134
134
|
end
|
135
135
|
|
136
|
+
# @param [Moneta::Api::Requests::VerifyPaymentBatchRequest]
|
137
|
+
# @return [Moneta::Api::Responses::VerifyPaymentBatchResponse]
|
138
|
+
def verify_payment_batch(request)
|
139
|
+
call(__method__, request)
|
140
|
+
end
|
141
|
+
|
136
142
|
# @param [Moneta::Api::Requests::VerifyTransferRequest]
|
137
143
|
# @return [Moneta::Api::Responses::VerifyTransferResponse]
|
138
144
|
def verify_transfer(request)
|
@@ -4,44 +4,7 @@ module Moneta
|
|
4
4
|
# Тип, описывающий параметры операции в запросах в пакетном режиме.
|
5
5
|
# Transaction parameters type for requests in batch processing mode.
|
6
6
|
|
7
|
-
class AuthoriseTransactionBatchRequestType <
|
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
|
7
|
+
class AuthoriseTransactionBatchRequestType < BatchRequestType; end
|
45
8
|
end
|
46
9
|
end
|
47
10
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Moneta
|
2
|
+
module Api
|
3
|
+
module Types
|
4
|
+
# Тип, описывающий параметры операции в запросах в пакетном режиме.
|
5
|
+
# Transaction parameters type for requests in batch processing mode.
|
6
|
+
|
7
|
+
class BatchRequestType < Entity
|
8
|
+
# @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
|
9
|
+
# Если transactional = true, то:
|
10
|
+
# при возникновении ошибки все проведенные операции будут отменены
|
11
|
+
# можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
|
12
|
+
# Если transactional = false, то:
|
13
|
+
# при возникновении ошибки все проведенные операции будут сохранены.
|
14
|
+
# Если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
|
15
|
+
# и продолжить выполнение операций дальше
|
16
|
+
# / 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.
|
17
|
+
property :transactional
|
18
|
+
|
19
|
+
# @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
|
20
|
+
# Используется только при transactional = false
|
21
|
+
# / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
|
22
|
+
property :exit_on_failure
|
23
|
+
|
24
|
+
# @return [Array[Moneta::Api::Types::Entity*]] Набор операций, которые необходимо выполнить в одном пакете.
|
25
|
+
# Операции выполняются в том порядке, в котором они переданы в запросе.
|
26
|
+
# / Set of transfers to be processed in one batch. Processed in order of appearance.
|
27
|
+
property :transaction
|
28
|
+
|
29
|
+
# Набор операций, которые необходимо выполнить в одном пакете.
|
30
|
+
# Операции выполняются в том порядке, в котором они переданы в запросе.
|
31
|
+
# / Set of transfers to be processed in one batch. Processed in order of appearance.
|
32
|
+
#
|
33
|
+
# @param [Moneta::Api::Types::Entity*]
|
34
|
+
# @return void
|
35
|
+
def add_transaction(item)
|
36
|
+
parents = item.class.ancestors
|
37
|
+
if parents.include?(basic_transaction_type)
|
38
|
+
(@transaction ||=[]).push(item)
|
39
|
+
else
|
40
|
+
raise TypeError.new("TypeError: #{ item.class } have not parent #{ basic_transaction_type.name }")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def basic_transaction_type
|
47
|
+
Moneta::Api::Types::Entity
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -4,41 +4,12 @@ module Moneta
|
|
4
4
|
# Тип для запроса подтверждения операции в пакетном режиме.
|
5
5
|
# Batch mode transaction confirmation request type.
|
6
6
|
|
7
|
-
class ConfirmTransactionBatchRequestType <
|
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
|
7
|
+
class ConfirmTransactionBatchRequestType < BatchRequestType
|
19
8
|
|
20
|
-
|
21
|
-
# Используется только при transactional = false
|
22
|
-
# / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
|
23
|
-
property :exit_on_failure
|
9
|
+
private
|
24
10
|
|
25
|
-
|
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::ConfirmTransactionRequestType]
|
35
|
-
# @return void
|
36
|
-
def add_transaction(item)
|
37
|
-
if item.is_a?(Moneta::Api::Types::ConfirmTransactionRequestType)
|
38
|
-
(@transaction ||=[]).push(item)
|
39
|
-
else
|
40
|
-
raise TypeError.new("TypeError: #{ item.class } should be a Moneta::Api::Types::ConfirmTransactionRequestType")
|
41
|
-
end
|
11
|
+
def basic_transaction_type
|
12
|
+
Moneta::Api::Types::ConfirmTransactionRequestType
|
42
13
|
end
|
43
14
|
end
|
44
15
|
end
|
@@ -4,44 +4,7 @@ module Moneta
|
|
4
4
|
# Тип, описывающий параметры операции в запросах в пакетном режиме.
|
5
5
|
# Transaction parameters type for requests in batch processing mode.
|
6
6
|
|
7
|
-
class TransferBatchRequestType <
|
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
|
7
|
+
class TransferBatchRequestType < BatchRequestType; end
|
45
8
|
end
|
46
9
|
end
|
47
10
|
end
|
data/lib/moneta/api/version.rb
CHANGED
data/lib/moneta/api.rb
CHANGED
@@ -13,6 +13,7 @@ require 'moneta/api/http_exception'
|
|
13
13
|
require 'moneta/api/connection_exception'
|
14
14
|
|
15
15
|
require 'moneta/api/types/entity'
|
16
|
+
require 'moneta/api/types/batch_request_type'
|
16
17
|
require 'moneta/api/types/account_access_info'
|
17
18
|
require 'moneta/api/types/account_info'
|
18
19
|
require 'moneta/api/types/authorise_transaction_batch_request_type'
|
@@ -36,6 +37,7 @@ require 'moneta/api/types/operation_info_batch_response_type'
|
|
36
37
|
require 'moneta/api/types/operation_info_list'
|
37
38
|
require 'moneta/api/types/pager'
|
38
39
|
require 'moneta/api/types/payment_request_type'
|
40
|
+
require 'moneta/api/types/payment_batch_request_type'
|
39
41
|
require 'moneta/api/types/transaction_batch_response_type'
|
40
42
|
require 'moneta/api/types/transaction_request_type'
|
41
43
|
require 'moneta/api/types/transaction_response_type'
|
@@ -64,6 +66,7 @@ require 'moneta/api/requests/refund_request'
|
|
64
66
|
require 'moneta/api/requests/transfer_request'
|
65
67
|
require 'moneta/api/requests/transfer_batch_request'
|
66
68
|
require 'moneta/api/requests/verify_payment_request'
|
69
|
+
require 'moneta/api/requests/verify_payment_batch_request'
|
67
70
|
require 'moneta/api/requests/verify_transaction_request'
|
68
71
|
require 'moneta/api/requests/verify_transfer_request'
|
69
72
|
require 'moneta/api/requests/create_profile_request'
|
@@ -103,6 +106,7 @@ require 'moneta/api/responses/refund_response'
|
|
103
106
|
require 'moneta/api/responses/transfer_response'
|
104
107
|
require 'moneta/api/responses/transfer_batch_response'
|
105
108
|
require 'moneta/api/responses/verify_payment_response'
|
109
|
+
require 'moneta/api/responses/verify_payment_batch_response'
|
106
110
|
require 'moneta/api/responses/verify_transaction_response'
|
107
111
|
require 'moneta/api/responses/verify_transfer_response'
|
108
112
|
require 'moneta/api/responses/create_profile_response'
|
@@ -0,0 +1,74 @@
|
|
1
|
+
describe Moneta::Api::Requests::VerifyPaymentBatchRequest do
|
2
|
+
describe 'Entity extension' do
|
3
|
+
subject { described_class.new.properties.keys }
|
4
|
+
|
5
|
+
it { is_expected.to be_include(:version) }
|
6
|
+
it { is_expected.to be_include(:transactional) }
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#add_transaction' do
|
10
|
+
let(:request) { described_class.new }
|
11
|
+
let(:add_transaction) { request.add_transaction(item) }
|
12
|
+
|
13
|
+
context 'when valid item' do
|
14
|
+
let(:item) { Moneta::Api::Types::TransactionRequestType.new }
|
15
|
+
|
16
|
+
it 'should success add' do
|
17
|
+
add_transaction
|
18
|
+
expect(request.transaction.count).to eq 1
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when invalid item' do
|
23
|
+
let(:item) { Hash.new }
|
24
|
+
|
25
|
+
it { expect { add_transaction }.to raise_error TypeError }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'use', vcr: true do
|
30
|
+
include_context 'moneta'
|
31
|
+
|
32
|
+
let(:data) {
|
33
|
+
{
|
34
|
+
amount: 10,
|
35
|
+
payee: 28988504,
|
36
|
+
payer: 10999,
|
37
|
+
is_payer_amount: false,
|
38
|
+
payment_password: '12345'
|
39
|
+
}
|
40
|
+
}
|
41
|
+
let(:request) do
|
42
|
+
described_class.new.tap do |request|
|
43
|
+
request.transactional = false
|
44
|
+
request.exit_on_failure = true
|
45
|
+
operations.each { |o| request.add_transaction(o) }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
subject { service.verify_payment_batch(request) }
|
50
|
+
|
51
|
+
context 'when one operation' do
|
52
|
+
let(:operations) do
|
53
|
+
[
|
54
|
+
Moneta::Api::Types::TransactionRequestType.build(data)
|
55
|
+
]
|
56
|
+
end
|
57
|
+
|
58
|
+
its(:transaction) { is_expected.to be_a_kind_of(Moneta::Api::Types::VerifyTransactionResponseType) }
|
59
|
+
its('transaction.forecast') { is_expected.to be_a_kind_of(Moneta::Api::Types::ForecastTransactionResponseType) }
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when two operations' do
|
63
|
+
let(:operations) do
|
64
|
+
[
|
65
|
+
Moneta::Api::Types::TransactionRequestType.build(data),
|
66
|
+
Moneta::Api::Types::TransactionRequestType.build(data)
|
67
|
+
]
|
68
|
+
end
|
69
|
+
|
70
|
+
its('transaction.count') { is_expected.to eq 2 }
|
71
|
+
its('transaction.first.forecast') { is_expected.to be_a_kind_of(Moneta::Api::Types::ForecastTransactionResponseType) }
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|