braspag-rest 0.5.0 → 0.5.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 +4 -4
- data/README.md +3 -0
- data/braspag-rest.gemspec +2 -1
- data/lib/braspag-rest/configuration.rb +4 -0
- data/lib/braspag-rest/request.rb +52 -5
- data/lib/braspag-rest/sale.rb +7 -0
- data/lib/braspag-rest/version.rb +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3360e6c175e92d74d09f77af1f4b7fc8be1c44cb
|
4
|
+
data.tar.gz: 814fafb264d9ff52d46c9063ce6a5ad29bec8152
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca38860114ae15583eae64cde61b80ff1b950dd3f30fa2cae38d7197352d25ff2a55feb7b9473fe160593dcf64cb413297f66eecbe55e43cf5e3238b9b0c128a
|
7
|
+
data.tar.gz: efc6ffb424460d2ad8a26101e9453f69f6c015b93b7671ea0ef7a32a54acc14abf55915f52e763d319770e825066ca23d8af5354ee2d0fd6901d3a07f2155c32
|
data/README.md
CHANGED
@@ -34,6 +34,7 @@ development:
|
|
34
34
|
query_url: 'https://apiquerysandbox.braspag.com.br'
|
35
35
|
merchant_id: 'Your MerchantId here'
|
36
36
|
merchant_key: 'Your MerchantKey here'
|
37
|
+
request_timeout: 60
|
37
38
|
```
|
38
39
|
|
39
40
|
If you want to use a different file or manually set which environment should be
|
@@ -59,11 +60,13 @@ development:
|
|
59
60
|
query_url: 'https://apiquerysandbox.braspag.com.br'
|
60
61
|
merchant_id: 'Your MerchantId here'
|
61
62
|
merchant_key: 'Your MerchantKey here'
|
63
|
+
request_timeout: 60
|
62
64
|
production:
|
63
65
|
url: <%= ENV['BRASPAG_URL'] %>
|
64
66
|
query_url: <%= ENV['BRASPAG_QUERY_URL'] %>
|
65
67
|
merchant_id: <%= ENV['BRASPAG_MERCHANT_ID'] %>
|
66
68
|
merchant_key: <%= ENV['BRASPAG_MERCHANT_KEY'] %>
|
69
|
+
request_timeout: <%= ENV['BRASPAG_REQUEST_TIMEOUT'] %>
|
67
70
|
```
|
68
71
|
|
69
72
|
### Authorize an order
|
data/braspag-rest.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "rest-client", "~>
|
20
|
+
spec.add_dependency "rest-client", "~> 2.0"
|
21
21
|
spec.add_dependency "hashie", "~> 3.4"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_development_dependency "rspec", "~> 3"
|
26
26
|
spec.add_development_dependency "pry"
|
27
27
|
spec.add_development_dependency "pry-nav"
|
28
|
+
spec.add_development_dependency "pry-byebug"
|
28
29
|
end
|
data/lib/braspag-rest/request.rb
CHANGED
@@ -9,7 +9,13 @@ module BraspagRest
|
|
9
9
|
config.logger.info("[BraspagRest][Authorize] endpoint: #{sale_url}, params: #{params.to_json}") if config.log_enabled?
|
10
10
|
|
11
11
|
execute_braspag_request do
|
12
|
-
RestClient.
|
12
|
+
RestClient::Request.execute(
|
13
|
+
method: :post,
|
14
|
+
url: sale_url,
|
15
|
+
payload: params.to_json,
|
16
|
+
headers: default_headers.merge('RequestId' => request_id),
|
17
|
+
timeout: config.request_timeout
|
18
|
+
)
|
13
19
|
end
|
14
20
|
end
|
15
21
|
|
@@ -17,7 +23,12 @@ module BraspagRest
|
|
17
23
|
config.logger.info("[BraspagRest][Void] endpoint: #{void_url(payment_id, amount)}") if config.log_enabled?
|
18
24
|
|
19
25
|
execute_braspag_request do
|
20
|
-
RestClient.
|
26
|
+
RestClient::Request.execute(
|
27
|
+
method: :put,
|
28
|
+
url: void_url(payment_id, amount),
|
29
|
+
headers: default_headers.merge('RequestId' => request_id),
|
30
|
+
timeout: config.request_timeout
|
31
|
+
)
|
21
32
|
end
|
22
33
|
end
|
23
34
|
|
@@ -25,7 +36,25 @@ module BraspagRest
|
|
25
36
|
config.logger.info("[BraspagRest][GetSale] endpoint: #{search_sale_url(payment_id)}") if config.log_enabled?
|
26
37
|
|
27
38
|
execute_braspag_request do
|
28
|
-
RestClient.
|
39
|
+
RestClient::Request.execute(
|
40
|
+
method: :get,
|
41
|
+
url: search_sale_url(payment_id),
|
42
|
+
headers: default_headers.merge('RequestId' => request_id),
|
43
|
+
timeout: config.request_timeout
|
44
|
+
)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def get_sales_for_merchant_order_id(request_id, merchant_order_id)
|
49
|
+
config.logger.info("[BraspagRest][GetSale] endpoint: #{search_sales_for_merchant_order_id_url(merchant_order_id)}") if config.log_enabled?
|
50
|
+
|
51
|
+
execute_braspag_request do
|
52
|
+
RestClient::Request.execute(
|
53
|
+
method: :get,
|
54
|
+
url: search_sales_for_merchant_order_id_url(merchant_order_id),
|
55
|
+
headers: default_headers.merge('RequestId' => request_id),
|
56
|
+
timeout: config.request_timeout
|
57
|
+
)
|
29
58
|
end
|
30
59
|
end
|
31
60
|
|
@@ -33,7 +62,13 @@ module BraspagRest
|
|
33
62
|
config.logger.info("[BraspagRest][Capture] endpoint: #{capture_url(payment_id)}, amount: #{amount}") if config.log_enabled?
|
34
63
|
|
35
64
|
execute_braspag_request do
|
36
|
-
RestClient.
|
65
|
+
RestClient::Request.execute(
|
66
|
+
method: :put,
|
67
|
+
url: capture_url(payment_id),
|
68
|
+
payload: { Amount: amount }.to_json,
|
69
|
+
headers: default_headers.merge('RequestId' => request_id),
|
70
|
+
timeout: config.request_timeout
|
71
|
+
)
|
37
72
|
end
|
38
73
|
end
|
39
74
|
|
@@ -46,7 +81,12 @@ module BraspagRest
|
|
46
81
|
|
47
82
|
BraspagRest::Response.new(gateway_response)
|
48
83
|
rescue RestClient::ResourceNotFound => e
|
49
|
-
|
84
|
+
# Explicitly message due to Rest Client RestClient::NotFound normalization:
|
85
|
+
# https://github.com/rest-client/rest-client/blob/v2.0.0/lib/restclient/exceptions.rb#L90
|
86
|
+
config.logger.error("[BraspagRest][Error] message: Resource Not Found, status: #{e.http_code}, body: #{e.http_body.inspect}") if config.log_enabled?
|
87
|
+
raise
|
88
|
+
rescue RestClient::RequestTimeout => e
|
89
|
+
config.logger.error("[BraspagRest][Timeout] message: #{e.message}") if config.log_enabled?
|
50
90
|
raise
|
51
91
|
rescue RestClient::ExceptionWithResponse => e
|
52
92
|
config.logger.warn("[BraspagRest][Error] message: #{e.message}, status: #{e.http_code}, body: #{e.http_body.inspect}") if config.log_enabled?
|
@@ -72,6 +112,13 @@ module BraspagRest
|
|
72
112
|
sale_url + payment_id.to_s + CAPTURE_ENDPOINT
|
73
113
|
end
|
74
114
|
|
115
|
+
def search_sales_for_merchant_order_id_url(merchant_order_id)
|
116
|
+
url = URI.parse(config.query_url)
|
117
|
+
url.path = SALE_ENDPOINT
|
118
|
+
url.query = "merchantOrderId=#{merchant_order_id}"
|
119
|
+
url.to_s
|
120
|
+
end
|
121
|
+
|
75
122
|
def default_headers
|
76
123
|
{
|
77
124
|
'Accept' => 'application/json',
|
data/lib/braspag-rest/sale.rb
CHANGED
@@ -18,6 +18,13 @@ module BraspagRest
|
|
18
18
|
new(response.parsed_body.merge('RequestId' => request_id))
|
19
19
|
end
|
20
20
|
|
21
|
+
def self.find_by_order_id(request_id, order_id)
|
22
|
+
response = BraspagRest::Request.get_sales_for_merchant_order_id(request_id, order_id)
|
23
|
+
payments = response.parsed_body['Payments']
|
24
|
+
|
25
|
+
payments.map { |payment| BraspagRest::Sale.find(request_id, payment['PaymentId']) }
|
26
|
+
end
|
27
|
+
|
21
28
|
def save
|
22
29
|
response = BraspagRest::Request.authorize(request_id, inverse_attributes)
|
23
30
|
|
data/lib/braspag-rest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braspag-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dinda Dev Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hashie
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-byebug
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: Gem to use Braspag gateway in his REST version
|
112
126
|
email:
|
113
127
|
- dev@dinda.com.br
|
@@ -170,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
184
|
version: '0'
|
171
185
|
requirements: []
|
172
186
|
rubyforge_project:
|
173
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.6.4
|
174
188
|
signing_key:
|
175
189
|
specification_version: 4
|
176
190
|
summary: Gem to use Braspag gateway in his REST version
|