bank_of_baku 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7c9afcd0aae59cdc6af02070e536f647a1da1e489f9acc5d659066525aeeb2f
4
- data.tar.gz: 4a47ce1ba3f7b048c926c35bfb87db0f8dce030e82ade87aa9d650c95f0b0029
3
+ metadata.gz: 83a5f7352ab43dc47bec81e000717c06391c8f8917eb0ad9375a2f9924836ccb
4
+ data.tar.gz: 1f74a8e059f80ba2ba0f36c2e663dd259ca7eda6253655f12b08a4f43a520933
5
5
  SHA512:
6
- metadata.gz: c5757cfc6f773bbd0c530ba9e024764c85fc2254ca7420bd9f49d5258970cb178bb89dc49d211b1cbe1d6486cba49df4fc881fe3c77ee92dde4281e50a069191
7
- data.tar.gz: ffbfcad6c44477d1ba4db89463f40a17322ddb5cc891b38b211b0ad4b37d45a6d516765122b8441a06cdb907f5d8d7dda0714fe3b859a62b521ceb771487f36d
6
+ metadata.gz: e4f831e425e57550978e4f966065a342acb943c3a0cf036ceb39cf8081724a51273c7c9f4e312daa82677f9b3be7288dae53ac88dbf278bca1dd8bff0cefaf1c
7
+ data.tar.gz: d06389c205927f37f32f549607cc765ce339d4bce1581a7eed884d61a89f3fd9b603bedd34b3e8c1a710048aea74c543640337502ec9750f4fa11e27ca07d286
data/README.md CHANGED
@@ -17,11 +17,9 @@ And then execute: `bundle`
17
17
 
18
18
  ```ruby
19
19
  BankOfBaku.configure do |config|
20
- config.endpoint = 'https://api.example.com/rest'
21
- config.username = 'test-user'
22
- config.password = 'secret'
23
- config.success_url = 'https://merchant.example.net/success'
24
- config.failure_url = 'https://merchant.example.net/fail'
20
+ config.endpoint = 'https://api.example.com/rest'
21
+ config.username = 'test-user'
22
+ config.password = 'secret'
25
23
  end
26
24
  ```
27
25
 
@@ -34,7 +32,9 @@ request_options = {
34
32
  amount: 5 * 100,
35
33
  currency: 944,
36
34
  description: 'Lorem ipsum dolor sit amet',
37
- pageView: %w[DESKTOP MOBILE].sample
35
+ pageView: %w[DESKTOP MOBILE].sample,
36
+ returnUrl: 'https://merchant.example.net/success',
37
+ failUrl: 'https://merchant.example.net/fail'
38
38
  }
39
39
 
40
40
  begin
@@ -42,6 +42,13 @@ begin
42
42
  rescue BankOfBaku::Error => e
43
43
  e.message
44
44
  end
45
+
46
+ # Order status
47
+ begin
48
+ BankOfBaku::Request.order_status(orderId: '40f1f684-029f-4d51-910e-cdb8f6453fb1')
49
+ rescue BankOfBaku::Error => e
50
+ e.message
51
+ end
45
52
  ```
46
53
 
47
54
  ## Development
@@ -2,7 +2,7 @@
2
2
 
3
3
  module BankOfBaku
4
4
  module Configuration
5
- VALID_OPTIONS_KEYS = %i[endpoint username password user_agent success_url failure_url].freeze
5
+ VALID_OPTIONS_KEYS = %i[endpoint username password user_agent].freeze
6
6
  DEFAULT_USER_AGENT = "BankOfBaku Ruby Gem #{BankOfBaku::VERSION}"
7
7
 
8
8
  attr_accessor(*VALID_OPTIONS_KEYS)
@@ -26,8 +26,6 @@ module BankOfBaku
26
26
  {
27
27
  userName: username,
28
28
  password: password,
29
- returnUrl: success_url,
30
- failUrl: failure_url,
31
29
  language: 'en'
32
30
  }
33
31
  end
@@ -7,5 +7,7 @@ module BankOfBaku
7
7
  class InvalidCurrency < Error; end
8
8
  class MissingParameter < Error; end
9
9
  class InvalidParameterValue < Error; end
10
+ class DeclinedOrder < Error; end
11
+ class UnregisteredOrder < Error; end
10
12
  class GatewayError < Error; end
11
13
  end
@@ -24,6 +24,23 @@ module BankOfBaku
24
24
  handle_response(request.run)
25
25
  end
26
26
 
27
+ # @param [Hash] request_options
28
+ # @return [Hash]
29
+ # @raise [BankOfBaku::HTTPResponseError]
30
+ # @raise [BankOfBaku::DeclinedOrder]
31
+ # @raise [BankOfBaku::InvalidParameterValue]
32
+ # @raise [BankOfBaku::UnregisteredOrder]
33
+ def self.order_status(request_options)
34
+ request = Typhoeus::Request.new(
35
+ "#{BankOfBaku.endpoint}/getOrderStatus.do",
36
+ method: :post,
37
+ followlocation: true,
38
+ headers: { 'User-Agent' => BankOfBaku.user_agent },
39
+ body: BankOfBaku.default_options.merge(request_options)
40
+ )
41
+ handle_response(request.run)
42
+ end
43
+
27
44
  # @private
28
45
  def self.handle_response(response)
29
46
  raise HTTPResponseError, "Gateway request failed: #{response.code}" unless response.success?
@@ -31,9 +48,11 @@ module BankOfBaku
31
48
  response = JSON.parse response.body
32
49
  error_klass = case response['errorCode']
33
50
  when '1' then RegisteredOrder
51
+ when '2' then DeclinedOrder
34
52
  when '3' then InvalidCurrency
35
53
  when '4' then MissingParameter
36
54
  when '5' then InvalidParameterValue
55
+ when '6' then UnregisteredOrder
37
56
  when '7' then GatewayError
38
57
  end
39
58
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BankOfBaku
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bank_of_baku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nihad Abbasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-15 00:00:00.000000000 Z
11
+ date: 2019-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus