rails-gp-webpay 0.2.2 → 0.2.7

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: 3643181a4935bb6e11e596857ab1b0cda7dda9e5f0fee12b3c2c09fc6699c43f
4
- data.tar.gz: 1fab34d34bfc0beb07c9b331493f7dfd29c058ed24f2b4e666cab26924763c48
3
+ metadata.gz: 0d20729c87099bedef965f67c65e97ff49896c05cf5f828a827d9ec26425e131
4
+ data.tar.gz: 56cbb512e5586786739f47a98c55da5aac529b50585dd1d82e875968e32489ee
5
5
  SHA512:
6
- metadata.gz: 7ae9459d606ab4a43d1228864041ab84897b094c5a68415c09dddb2fa336ad6adb233e3e741223f1e5cf918d5eb8c57e8d8175f11fc3b2f0de2bd6ccf1dd7896
7
- data.tar.gz: db2bbb88bb0d8726e0a4487022e89ae3d5621926f1b5185658a6243571d466f09515c6a14506e2b9230fe17f448deecdfd3fff44dc938d89e8d7da06c7c2c718
6
+ metadata.gz: 71ed518c96d9b121109f7e8d8411680643ff8c8656bd42812b7dbad961b4b5bec725de2c32b704336e775c8f5e014c81184f2a05e66b4a6ca6137ec8bbb65178
7
+ data.tar.gz: 8905c888bbe6cfc5462b188e00b34acb3ffb94fe3d141261b1da7e6a3d5d54b014957b4aad735019c69c784c0f2021f86d3f3668ec9d9f6d4018b3229d0e123d
data/changelog.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.7
4
+ Pr and Sr codes in stubs
5
+
6
+ ## 0.2.6
7
+ Add merchant number to tests, add default attributes to requests
8
+
9
+ ## 0.2.4
10
+ Increase savon timeout to 5 minutes
11
+
3
12
  ## 0.2.2
4
13
  Add merchant number to stubs
5
14
 
@@ -15,7 +15,16 @@ module GpWebpay
15
15
  end
16
16
 
17
17
  def [](config_name)
18
- @configurations[config_name]
18
+ return if config_name.blank?
19
+
20
+ @configurations[config_name] || find_configuration_by_merchant_number(config_name)
21
+ end
22
+
23
+ def find_configuration_by_merchant_number(merchant_number)
24
+ config = @configurations.find { |_key, value| value.merchant_number.to_s == merchant_number.to_s }
25
+ return nil if config.blank?
26
+
27
+ config[-1]
19
28
  end
20
29
 
21
30
  def add_configuration(merchant_number:, default: false)
@@ -25,7 +34,7 @@ module GpWebpay
25
34
  end
26
35
 
27
36
  def remove_configuration(merchant_number:)
28
- @configurations[merchant_number] = nil
37
+ @configurations.delete(merchant_number)
29
38
  @configurations[:default] = @configurations[@configurations.keys[0]]
30
39
  end
31
40
 
@@ -1,5 +1,5 @@
1
1
  require 'savon/mock/spec_helper'
2
-
2
+ # rubocop:disable Metrics/ParameterLists
3
3
  module GpWebpay
4
4
  module SpecHelper
5
5
  class Interface
@@ -24,20 +24,27 @@ module GpWebpay
24
24
  def stub_card_token(token, status: 'VERIFIED', success: true, valid: true)
25
25
  allow(GpWebpay::Ws::Services::GetTokenStatus)
26
26
  .to receive(:call).with(hash_including(token_data: token, message_id: anything))
27
- .and_return(instance_double(GpWebpay::Ws::WsResponse, valid?: valid, success?: success, status: status))
27
+ .and_return(instance_double(GpWebpay::Ws::WsResponse, valid?: valid, success?: success, status: status,
28
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
29
+ original_response: { pr_code: 0, sr_code: 0 }))
28
30
  end
29
31
 
30
32
  def stub_master_payment_status(payment_number, status: 'OK', success: true, valid: true)
31
33
  allow(GpWebpay::Ws::Services::GetMasterPaymentStatus)
32
34
  .to receive(:call).with(hash_including(payment_number: payment_number, message_id: anything))
33
- .and_return(instance_double(GpWebpay::Ws::WsResponse, valid?: valid, success?: success, status: status))
35
+ .and_return(instance_double(GpWebpay::Ws::WsResponse, valid?: valid, success?: success, status: status,
36
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
37
+ original_response: { pr_code: 0, sr_code: 0 }))
38
+
34
39
  end
35
40
 
36
- def stub_payment_status(payment_number, status: 'VERIFIED', sub_status: 'SETTLED', success: true, valid: true)
41
+ def stub_payment_status(payment_number, merchant_number: nil, status: 'VERIFIED', sub_status: 'SETTLED', success: true, valid: true)
37
42
  allow(GpWebpay::Ws::Services::GetPaymentStatus)
38
- .to receive(:call).with(hash_including(payment_number: payment_number, message_id: anything))
43
+ .to receive(:call).with(hash_including(payment_number: payment_number, message_id: anything), merchant_number: merchant_number)
39
44
  .and_return(instance_double(GpWebpay::Ws::WsResponse,
40
45
  valid?: valid, success?: success, status: status,
46
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
47
+ original_response: { pr_code: 0, sr_code: 0 },
41
48
  params: { sub_status: sub_status }))
42
49
  end
43
50
 
@@ -45,18 +52,17 @@ module GpWebpay
45
52
  allow(GpWebpay::Ws::Services::ProcessUsageBasedPayment)
46
53
  .to receive(:call).with(
47
54
  hash_including(
48
- {
49
- message_id: anything,
55
+ { message_id: anything,
50
56
  payment_number: anything,
51
57
  order_number: anything,
52
58
  currency_code: anything,
53
- capture_flag: '1'
54
- }.merge(attributes)
59
+ capture_flag: '1' }.merge(attributes)
55
60
  ),
56
- merchant_number: merchant_number,
61
+ merchant_number: merchant_number
57
62
  ).and_return(instance_double(GpWebpay::Ws::WsResponse,
58
63
  valid?: valid, success?: success, status: status, result_text: result_text,
59
64
  pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
65
+ original_response: { pr_code: 0, sr_code: 0 },
60
66
  params: { token_data: response_token_data || attributes[:token_data] }))
61
67
  end
62
68
 
@@ -66,34 +72,38 @@ module GpWebpay
66
72
  hash_including({ message_id: anything }.merge(token_data: token))
67
73
  ).and_return(instance_double(GpWebpay::Ws::WsResponse,
68
74
  valid?: valid, success?: success, status: status, result_text: result_text,
69
- pr_code: success ? '0' : '123', sr_code: success ? '0' : '4'))
75
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
76
+ original_response: { pr_code: 0, sr_code: 0 }))
70
77
  end
71
78
 
72
- def stub_refund_payment(attributes, valid: true, success: true, status: '', result_text: 'OK')
79
+ def stub_refund_payment(attributes, merchant_number: nil, valid: true, success: true, status: '', result_text: 'OK')
73
80
  allow(GpWebpay::Ws::Services::ProcessRefundPayment)
74
81
  .to receive(:call).with(
75
- hash_including({ message_id: anything }.merge(attributes))
82
+ hash_including({ message_id: anything }.merge(attributes)), merchant_number: merchant_number
76
83
  ).and_return(instance_double(GpWebpay::Ws::WsResponse,
77
84
  valid?: valid, success?: success, status: status, result_text: result_text,
78
- pr_code: success ? '0' : '123', sr_code: success ? '0' : '4'))
85
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
86
+ original_response: { pr_code: 0, sr_code: 0 }))
79
87
  end
80
88
 
81
- def stub_capture_reverse(attributes, valid: true, success: true, status: '', result_text: 'OK')
89
+ def stub_capture_reverse(attributes, merchant_number: nil, valid: true, success: true, status: '', result_text: 'OK')
82
90
  allow(GpWebpay::Ws::Services::ProcessCaptureReverse)
83
91
  .to receive(:call).with(
84
- hash_including({ message_id: anything }.merge(attributes))
92
+ hash_including({ message_id: anything }.merge(attributes)), merchant_number: merchant_number
85
93
  ).and_return(instance_double(GpWebpay::Ws::WsResponse,
86
94
  valid?: valid, success?: success, status: status, result_text: result_text,
87
- pr_code: success ? '0' : '123', sr_code: success ? '0' : '4'))
95
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
96
+ original_response: { pr_code: 0, sr_code: 0 }))
88
97
  end
89
98
 
90
- def stub_cancel_capture(attributes, valid: true, success: true, status: '', result_text: 'OK')
99
+ def stub_cancel_capture(attributes, merchant_number: nil, valid: true, success: true, status: '', result_text: 'OK')
91
100
  allow(GpWebpay::Ws::Services::ProcessCancelCapture)
92
101
  .to receive(:call).with(
93
- hash_including({ message_id: anything }.merge(attributes))
102
+ hash_including({ message_id: anything }.merge(attributes)), merchant_number: merchant_number
94
103
  ).and_return(instance_double(GpWebpay::Ws::WsResponse,
95
104
  valid?: valid, success?: success, status: status, result_text: result_text,
96
- pr_code: success ? '0' : '123', sr_code: success ? '0' : '4'))
105
+ pr_code: success ? '0' : '123', sr_code: success ? '0' : '4',
106
+ original_response: { pr_code: 0, sr_code: 0 }))
97
107
  end
98
108
  end
99
109
 
@@ -102,3 +112,4 @@ module GpWebpay
102
112
  end
103
113
  end
104
114
  end
115
+ # rubocop:enable Metrics/ParameterLists
@@ -1,3 +1,3 @@
1
1
  module GpWebpay
2
- VERSION = '0.2.2'.freeze
2
+ VERSION = '0.2.7'.freeze
3
3
  end
@@ -23,6 +23,7 @@ module GpWebpay
23
23
  RESPONSE_NAME = 'override_me'.freeze
24
24
  RESPONSE_ENTITY_NAME = 'override_me'.freeze
25
25
  SERVICE_EXCEPTION = :service_exception
26
+ DEFAULT_ATTRIBUTES = {}.freeze
26
27
 
27
28
  def initialize(attributes, merchant_number: :default)
28
29
  @attributes = attributes
@@ -32,9 +33,10 @@ module GpWebpay
32
33
  end
33
34
 
34
35
  def call
35
- attrs = WsRequest.new(attributes.merge(provider: config.provider, merchant_number: config.merchant_number)).to_gpwebpay
36
+ attrs = WsRequest.new(final_attributes).to_gpwebpay
36
37
 
37
- res = client.call(self.class::OPERATION_NAME, message: { self.class::REQUEST_NAME => attributes_with_signature(attrs) })
38
+ Rails.logger.debug([self.class::OPERATION_NAME, { message: { self.class::REQUEST_NAME => attributes_with_signature(attrs) } }])
39
+ res = client.call(self.class::OPERATION_NAME, { message: { self.class::REQUEST_NAME => attributes_with_signature(attrs) } })
38
40
  WsResponse.from_success(res.body, self.class::RESPONSE_NAME, self.class::RESPONSE_ENTITY_NAME, config.merchant_number)
39
41
  rescue Savon::HTTPError => e
40
42
  rescue_from_http(e)
@@ -44,6 +46,12 @@ module GpWebpay
44
46
 
45
47
  protected
46
48
 
49
+ def final_attributes
50
+ {}.merge(self.class::DEFAULT_ATTRIBUTES,
51
+ attributes,
52
+ { provider: config.provider, merchant_number: config.merchant_number })
53
+ end
54
+
47
55
  def digest_text(attrs)
48
56
  attrs.values.join('|')
49
57
  end
@@ -54,7 +62,11 @@ module GpWebpay
54
62
  end
55
63
 
56
64
  def client
57
- @client ||= Savon.client(wsdl: config.wsdl_file, endpoint: config.ws_url, pretty_print_xml: true)
65
+ @client ||= Savon.client(wsdl: config.wsdl_file,
66
+ endpoint: config.ws_url,
67
+ pretty_print_xml: true,
68
+ open_timeout: 300,
69
+ read_timeout: 300)
58
70
  end
59
71
 
60
72
  def rescue_from_http(error)
@@ -14,6 +14,7 @@ module GpWebpay
14
14
  REQUEST_NAME = :capture_reverse_request
15
15
  RESPONSE_NAME = :process_capture_reverse_response
16
16
  RESPONSE_ENTITY_NAME = :capture_reverse_response
17
+ DEFAULT_ATTRIBUTES = { capture_number: 1 }.freeze # 1 is recommended
17
18
  end
18
19
  end
19
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-gp-webpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lubomir Vnenk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-04 00:00:00.000000000 Z
11
+ date: 2021-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport