moneta-api 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1c57b143f1deaff1fd20aab54676724403a76ba
4
- data.tar.gz: 1c2ace8fff474fb919bb77dca1a145b3a243fa14
3
+ metadata.gz: 2bd8ba9619326c34b72b79371521849fe44e5b78
4
+ data.tar.gz: 1a9a33ce255cb1a7c8bdf4a40c69999659992da7
5
5
  SHA512:
6
- metadata.gz: c3b2b4bb3223ab341c26536bd36f98c777c8f10254ffef902db9d24e52ff26336faa758d5aa6d2d51fa2f5d2ee4c47f7a3a4d3755973feba121d03ea61f80638
7
- data.tar.gz: 71ddfcf91f937a1cd72ce54a1fdbbbd58be77d71fa14a35bba2d6853635f36173ad02bede4f087111725e55af70b9aa29c8b6c0d15bf1b722c4acec9b307aab3
6
+ metadata.gz: ecd96715a52e1fc07270eb7e872ec91b6b7fc69c0521ef99b79c403ec41eda12574308fad9b8b94e4a0a161e85c3d82d10fdaa0625113f4de21d2864df634f40
7
+ data.tar.gz: d35540807da05ab55e0f9c7872da1f6567b36275a046d52d7ce27701ba89f4bbfc3555e0f44bbc03ed32824bbf9405c4c06e8d0d984ec71535ea0ac606b0aaf7
@@ -1,6 +1,6 @@
1
1
  module Moneta
2
2
  module Api
3
- module Request
3
+ module Requests
4
4
  # Запрос на отмену операции. Отменять операцию можно при выполнении всех условий:
5
5
  # незавершенные операции;
6
6
  # если есть доступ к счету плательщика и счету получателя (то есть свои внутренние операции).
@@ -1,6 +1,9 @@
1
1
  module Moneta
2
2
  module Api
3
3
  class Service
4
+ DEMO = 'https://demo.moneta.ru/services.wsdl'
5
+ PRODUCTION = 'https://www.moneta.ru/services.wsdl'
6
+
4
7
  include ServiceMethods
5
8
  attr_reader :client
6
9
 
@@ -11,7 +14,15 @@ module Moneta
11
14
  private
12
15
 
13
16
  def prepare_params(username, password, params)
14
- { wsdl: 'https://demo.moneta.ru/services.wsdl', wsse_auth: [ username, password ] }
17
+ demo_mode = params.delete(:demo_mode)
18
+
19
+ { wsse_auth: [ username, password ] }
20
+ .merge(params)
21
+ .merge(wsdl: wsdl_url(demo_mode))
22
+ end
23
+
24
+ def wsdl_url(demo_mode)
25
+ demo_mode ? DEMO : PRODUCTION
15
26
  end
16
27
  end
17
28
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'entity'
2
+
1
3
  module Moneta
2
4
  module Api
3
5
  module Types
@@ -1,3 +1,7 @@
1
+ require_relative 'key_value_attribute'
2
+ require_relative 'operation_info'
3
+ require_relative 'transaction_request_type'
4
+
1
5
  module Moneta
2
6
  module Api
3
7
  module Types
@@ -1,3 +1,5 @@
1
+ require_relative 'verify_transfer_response_type'
2
+
1
3
  module Moneta
2
4
  module Api
3
5
  module Types
@@ -1,5 +1,5 @@
1
1
  module Moneta
2
2
  module Api
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  end
data/lib/moneta/api.rb CHANGED
@@ -5,14 +5,6 @@ require 'moneta/api/service_methods'
5
5
  require 'moneta/api/service'
6
6
  require 'moneta/api/data_mapper'
7
7
 
8
- require 'moneta/api/types/entity'
9
- require 'moneta/api/types/key_value_attribute'
10
- require 'moneta/api/types/operation_info'
11
- require 'moneta/api/types/transaction_request_type'
12
-
13
- require 'moneta/api/types/forecast_transaction_response_type'
14
- require 'moneta/api/types/verify_transfer_response_type'
15
-
16
8
  %w(types responses requests).each do |folder|
17
9
  Dir["lib/moneta/api/#{ folder }/*.rb"].each do |file|
18
10
  require File.join(File.dirname(__FILE__), '../../', file)
@@ -27,7 +27,8 @@ describe Moneta::Api::Requests::AuthoriseTransactionBatchRequest do
27
27
  end
28
28
 
29
29
  describe 'use', vcr: true do
30
- let(:service) { Moneta::Api::Service.new($username, $password) }
30
+ include_context 'moneta'
31
+
31
32
  let(:data) {
32
33
  {
33
34
  amount: 10,
@@ -1,14 +1,10 @@
1
1
  describe Moneta::Api::Requests::AuthoriseTransactionRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe '#authorise_transaction' do
5
5
  let(:request) do
6
6
  described_class.new.tap do |request|
7
- request.payee = 28988504
8
- request.payer = 10999
9
- request.amount = 10
10
- request.is_payer_amount = false
11
- request.payment_password = '12345'
7
+ fill_base_settings.(request)
12
8
  end
13
9
  end
14
10
 
@@ -1,5 +1,5 @@
1
1
  describe Moneta::Api::Requests::CreateAccountRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe 'create account' do
5
5
  let(:request) do
@@ -1,5 +1,5 @@
1
1
  describe Moneta::Api::Requests::FindOperationsListRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe 'find_operations_list' do
5
5
  let(:request) do
@@ -1,14 +1,9 @@
1
1
  describe Moneta::Api::Requests::ForecastTransactionRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
3
-
2
+ include_context 'moneta'
4
3
  describe 'forecast_transaction' do
5
4
  let(:request) do
6
5
  described_class.new.tap do |request|
7
- request.amount = 10
8
- request.payee = 28988504
9
- request.payer = 10999
10
- request.is_payer_amount = false
11
- request.payment_password = '12345'
6
+ fill_base_settings.(request)
12
7
  end
13
8
  end
14
9
 
@@ -1,5 +1,5 @@
1
1
  describe Moneta::Api::Requests::GetAccountPaymentPasswordChallengeRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe 'get_account_payment_password_challenge' do
5
5
  let(:request) do
@@ -1,14 +1,10 @@
1
1
  describe Moneta::Api::Requests::PaymentRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe 'payment' do
5
5
  let(:request) do
6
6
  described_class.new.tap do |request|
7
- request.payee = 28988504
8
- request.payer = 10999
9
- request.amount = 10
10
- request.is_payer_amount = false
11
- request.payment_password = '12345'
7
+ fill_base_settings.(request)
12
8
  end
13
9
  end
14
10
 
@@ -1,14 +1,10 @@
1
1
  describe Moneta::Api::Requests::TransferRequest, vcr: true do
2
- let(:service) { Moneta::Api::Service.new($username, $password) }
2
+ include_context 'moneta'
3
3
 
4
4
  describe 'transfer' do
5
5
  let(:request) do
6
6
  described_class.new.tap do |request|
7
- request.amount = 10
8
- request.payee = 28988504
9
- request.payer = 10999
10
- request.is_payer_amount = false
11
- request.payment_password = '12345'
7
+ fill_base_settings.(request)
12
8
  end
13
9
  end
14
10
 
@@ -1,9 +1,24 @@
1
- describe Moneta::Api::Service, vcr: true do
2
- let(:service) { described_class.new($username, $password) }
1
+ describe Moneta::Api::Service do
2
+ let(:params) { { demo_mode: true } }
3
+ let(:service) { described_class.new($username, $password, params) }
3
4
 
4
- describe '#find_account_by_id' do
5
+ describe '#find_account_by_id', vcr: true do
5
6
  subject { service.find_account_by_id(10999) }
6
7
 
7
8
  its('account.id') { is_expected.to eq '10999' }
8
9
  end
10
+
11
+ describe 'wsdl url' do
12
+ subject{ service.client.globals.instance_variable_get('@options')[:wsdl] }
13
+
14
+ context 'when demo mode' do
15
+ it { is_expected.to eq 'https://demo.moneta.ru/services.wsdl' }
16
+ end
17
+
18
+ context 'when demo mode' do
19
+ let(:params) { {} }
20
+
21
+ it { is_expected.to eq 'https://www.moneta.ru/services.wsdl' }
22
+ end
23
+ end
9
24
  end
@@ -0,0 +1,13 @@
1
+ RSpec.shared_context 'moneta' do
2
+ let(:service) { Moneta::Api::Service.new($username, $password, { demo_mode: true }) }
3
+
4
+ let(:fill_base_settings) do
5
+ Proc.new do |request|
6
+ request.payee = 28988504
7
+ request.payer = 10999
8
+ request.amount = 10
9
+ request.is_payer_amount = false
10
+ request.payment_password = '12345'
11
+ end
12
+ end
13
+ end
@@ -21,7 +21,7 @@ http_interactions:
21
21
  server:
22
22
  - nginx
23
23
  date:
24
- - Fri, 10 Apr 2015 12:27:00 GMT
24
+ - Tue, 14 Apr 2015 08:37:20 GMT
25
25
  content-type:
26
26
  - text/xml
27
27
  transfer-encoding:
@@ -10733,7 +10733,7 @@ http_interactions:
10733
10733
  ZXMiLz4KICAgICAgPC93c2RsOnBvcnQ+CiAgIDwvd3NkbDpzZXJ2aWNlPgo8
10734
10734
  L3dzZGw6ZGVmaW5pdGlvbnM+
10735
10735
  http_version: '1.1'
10736
- recorded_at: Fri, 10 Apr 2015 12:27:03 GMT
10736
+ recorded_at: Tue, 14 Apr 2015 08:37:23 GMT
10737
10737
  - request:
10738
10738
  method: post
10739
10739
  uri: https://demo.moneta.ru/services
@@ -10766,7 +10766,7 @@ http_interactions:
10766
10766
  server:
10767
10767
  - nginx
10768
10768
  date:
10769
- - Fri, 10 Apr 2015 12:27:03 GMT
10769
+ - Tue, 14 Apr 2015 08:37:23 GMT
10770
10770
  content-type:
10771
10771
  - text/xml;charset=utf-8
10772
10772
  content-length:
@@ -10784,7 +10784,7 @@ http_interactions:
10784
10784
  body:
10785
10785
  encoding: UTF-8
10786
10786
  string: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><ns2:AuthoriseTransactionResponse
10787
- xmlns:ns2="http://www.moneta.ru/schemas/messages.xsd"><ns2:id>340023</ns2:id><ns2:attribute><ns2:key>category</ns2:key><ns2:value>BUSINESS</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourcecurrencycode</ns2:key><ns2:value>RUB</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceamount</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>typeid</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetamount</ns2:key><ns2:value>-10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>protectioncode</ns2:key><ns2:value>88776</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetcurrencycode</ns2:key><ns2:value>RUB</ns2:value></ns2:attribute><ns2:attribute><ns2:key>statusid</ns2:key><ns2:value>INPROGRESS</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceamounttotal</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>modified</ns2:key><ns2:value>2015-04-10T15:27:03.000+03:00</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetaccountid</ns2:key><ns2:value>10999</ns2:value></ns2:attribute><ns2:attribute><ns2:key>protectioncodeexpirationdate</ns2:key><ns2:value>2015-04-11T15:27:02.000+03:00</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceaccountid</ns2:key><ns2:value>28988504</ns2:value></ns2:attribute><ns2:attribute><ns2:key>isreversed</ns2:key><ns2:value>true</ns2:value></ns2:attribute></ns2:AuthoriseTransactionResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
10787
+ xmlns:ns2="http://www.moneta.ru/schemas/messages.xsd"><ns2:id>340167</ns2:id><ns2:attribute><ns2:key>category</ns2:key><ns2:value>BUSINESS</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourcecurrencycode</ns2:key><ns2:value>RUB</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceamount</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>typeid</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetamount</ns2:key><ns2:value>-10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>protectioncode</ns2:key><ns2:value>49754</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetcurrencycode</ns2:key><ns2:value>RUB</ns2:value></ns2:attribute><ns2:attribute><ns2:key>statusid</ns2:key><ns2:value>INPROGRESS</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceamounttotal</ns2:key><ns2:value>10</ns2:value></ns2:attribute><ns2:attribute><ns2:key>modified</ns2:key><ns2:value>2015-04-14T11:37:23.000+03:00</ns2:value></ns2:attribute><ns2:attribute><ns2:key>targetaccountid</ns2:key><ns2:value>10999</ns2:value></ns2:attribute><ns2:attribute><ns2:key>protectioncodeexpirationdate</ns2:key><ns2:value>2015-04-15T11:37:22.000+03:00</ns2:value></ns2:attribute><ns2:attribute><ns2:key>sourceaccountid</ns2:key><ns2:value>28988504</ns2:value></ns2:attribute><ns2:attribute><ns2:key>isreversed</ns2:key><ns2:value>true</ns2:value></ns2:attribute></ns2:AuthoriseTransactionResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
10788
10788
  http_version: '1.1'
10789
- recorded_at: Fri, 10 Apr 2015 12:27:04 GMT
10789
+ recorded_at: Tue, 14 Apr 2015 08:37:24 GMT
10790
10790
  recorded_with: VCR 2.9.3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moneta-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ssnikolay
@@ -238,6 +238,7 @@ files:
238
238
  - spec/lib/moneta/api/service_spec.rb
239
239
  - spec/lib/moneta/api/types/operation_info_spec.rb
240
240
  - spec/spec_helper.rb
241
+ - spec/support/context.rb
241
242
  - spec/support/matchers.rb
242
243
  - spec/support/wsdl
243
244
  - spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml
@@ -287,6 +288,7 @@ test_files:
287
288
  - spec/lib/moneta/api/service_spec.rb
288
289
  - spec/lib/moneta/api/types/operation_info_spec.rb
289
290
  - spec/spec_helper.rb
291
+ - spec/support/context.rb
290
292
  - spec/support/matchers.rb
291
293
  - spec/support/wsdl
292
294
  - spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml