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.
Files changed (21) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/lib/moneta/api/requests/verify_payment_batch_request.rb +9 -0
  4. data/lib/moneta/api/responses/verify_payment_batch_response.rb +16 -0
  5. data/lib/moneta/api/service_methods.rb +6 -0
  6. data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +1 -38
  7. data/lib/moneta/api/types/batch_request_type.rb +52 -0
  8. data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +4 -33
  9. data/lib/moneta/api/types/payment_batch_request_type.rb +10 -0
  10. data/lib/moneta/api/types/transfer_batch_request_type.rb +1 -38
  11. data/lib/moneta/api/version.rb +1 -1
  12. data/lib/moneta/api.rb +4 -0
  13. data/spec/lib/moneta/api/requests/verify_payment_batch_request_spec.rb +74 -0
  14. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_.yml +15321 -0
  15. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_forecast_.yml +15321 -0
  16. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_one_operation_transaction_transaction_.yml +15321 -0
  17. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_.yml +15330 -0
  18. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_count_.yml +15330 -0
  19. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_first_forecast_.yml +15330 -0
  20. data/spec/vcr/moneta_api_requests_verifypaymentbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +15330 -0
  21. metadata +24 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 372560965c09de9ba36c3050014096cad8c5e763
4
- data.tar.gz: ca25d82ba2565f5e5d24c0115499fea00973fec1
3
+ metadata.gz: ec25e8159efc74bcff544e4bc1a8d85ce7105c53
4
+ data.tar.gz: 22f5740d0704eb41743b68ae454f9b368913b94c
5
5
  SHA512:
6
- metadata.gz: d127a79e63f3569685761db805f27265a5b8433c1061670d921d87a24fb4ea2501e14a8106fc09b7d4714bac886e07a11f081ff232f66c34d565de4935f8f397
7
- data.tar.gz: aa3813d5096220dd6bb48429b311bff3da807aa7ad22679f59c97b5507d8de433bda289632ea20be7008f8efc5be48c93aaad733d5c242ede2006c4bcd344bda
6
+ metadata.gz: 1fbef24219211082d2d26a74caceaac298f84afe0e965655321861753412b8b9773a4d894dcfcc0e0379c4239f382dccf9e9a2c41200713249b980a3b600fad1
7
+ data.tar.gz: 7509680aca56558cce136edf35faf6a40524534f084b75f632d656f796b944ac2f6df377afe59517cfb96f03e9a7d62173775105a6a10088cd21022e5687429f
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 1.13.0
2
+
3
+ - Поддержка метода `VerifyPaymentBatchRequest`. Added support for `VerifyPaymentBatchRequest` method. [#50]
@@ -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 < 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
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 < 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
7
+ class ConfirmTransactionBatchRequestType < BatchRequestType
19
8
 
20
- # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
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
- # @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::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
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий параметры операции в запросах в пакетном режиме.
5
+ # Transaction parameters type for requests in batch processing mode.
6
+
7
+ class PaymentBatchRequestType < BatchRequestType; end
8
+ end
9
+ end
10
+ 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 < 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
7
+ class TransferBatchRequestType < BatchRequestType; end
45
8
  end
46
9
  end
47
10
  end
@@ -1,5 +1,5 @@
1
1
  module Moneta
2
2
  module Api
3
- VERSION = '1.12.8'
3
+ VERSION = '1.13.0'
4
4
  end
5
5
  end
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