moneta-api 1.12.8 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|