rails-gp-webpay 0.2.2 → 0.2.7

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
  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