bs2_api 1.6.2 → 1.9.0

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: 995b6148737a522290ec526905740f88b1f883502167576e25eac8b0e2367720
4
- data.tar.gz: a6ae71ef4a47cf3f62026313baec3617065ccf7e4deb099519f2af7db888daef
3
+ metadata.gz: e227d119f3349c177684b484c96511b5777c5812c8f120cf10051fe9a1abcdba
4
+ data.tar.gz: 3affe7ed09839958dbeac84a9e7db055985b51aec44f2d6e7538aa58bf863c2a
5
5
  SHA512:
6
- metadata.gz: 226da89196ae3a68f8cf109b33d14b4478251e5dc4ad1e97b11894b6a19f2ebeb8a16d8bc110f44c0f9f44d108464634b269c92e97a343ab0e191e99d44d229a
7
- data.tar.gz: 70ee5e748030f91e5a45e35d8806cd531e598973be731ba2110e2d298e261bf74e1f275c7d56bdc5f3afd0909e375b66a5facd3f2120dc466e74b4039e2fe385
6
+ metadata.gz: 4d4f791b5a21950626dfc1c010b0fd28cb9bb515fee03237de78456f0d93bf5d5bfb655e9112bed81ca176fbd8a5e1e7464fb43870e517e0c4a37ca7c3ca768d
7
+ data.tar.gz: ed0d0cddde24d0d1edb6e492e244a9708342a2f45ee38fef59e9dc6e6ae89aec8f25aa739fad1a959dba9831b19eb28266fe43292f59a27b508474e7789a3ced
data/.gitignore CHANGED
@@ -20,3 +20,4 @@
20
20
  *.swp
21
21
  *.swo
22
22
  .byebug_history
23
+ .vscode
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bs2_api (1.6.0)
4
+ bs2_api (1.9.0)
5
5
  activesupport
6
6
  builder
7
7
  bundler
data/bs2_api.gemspec CHANGED
@@ -40,4 +40,4 @@ Gem::Specification.new do |spec|
40
40
  spec.add_development_dependency("webmock", "~> 3.13")
41
41
  spec.add_development_dependency("vcr", "~> 6.0")
42
42
  spec.add_development_dependency("dotenv", "~> 2.7", ">= 2.7.6")
43
- end
43
+ end
@@ -68,6 +68,14 @@ module Bs2Api
68
68
  def error?
69
69
  @status == :error
70
70
  end
71
+
72
+ def awaiting_validation?
73
+ @status == :awaiting_validation
74
+ end
75
+
76
+ def in_process?
77
+ @status == :in_process
78
+ end
71
79
  end
72
80
  end
73
81
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Entities
5
+ class Error
6
+ attr_accessor :code, :description
7
+
8
+ def initialize(args = {})
9
+ @code = args.fetch(:code, nil)
10
+ @description = args.fetch(:description, nil)
11
+ end
12
+
13
+ def to_hash
14
+ hash_data = {
15
+ "erroCodigo": @code,
16
+ "erroDescricao": @description
17
+ }
18
+
19
+ ActiveSupport::HashWithIndifferentAccess.new(hash_data)
20
+ end
21
+
22
+ def self.from_response(hash_payload)
23
+ return {} if hash_payload.blank?
24
+
25
+ hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)
26
+ Bs2Api::Entities::Error.new(
27
+ code: hash['erroCodigo'],
28
+ description: hash['erroDescricao']
29
+ )
30
+ end
31
+ end
32
+ end
33
+ end
@@ -3,7 +3,7 @@
3
3
  module Bs2Api
4
4
  module Entities
5
5
  class Payment
6
- attr_accessor :payment_id, :end_to_end_id, :receiver, :payer, :status
6
+ attr_accessor :payment_id, :end_to_end_id, :receiver, :payer, :status, :error
7
7
 
8
8
  def initialize(args = {})
9
9
  @payment_id = args.fetch(:payment_id, nil)
@@ -11,6 +11,7 @@ module Bs2Api
11
11
  @receiver = args.fetch(:receiver, nil)
12
12
  @payer = args.fetch(:payer, nil)
13
13
  @status = args.fetch(:status, nil)
14
+ @error = args.fetch(:error, nil)
14
15
  end
15
16
 
16
17
  def to_hash
@@ -22,6 +23,7 @@ module Bs2Api
22
23
 
23
24
  hash_data.merge!({ "recebedor": @receiver.to_hash } ) if @receiver.present?
24
25
  hash_data.merge!({ "pagador": @payer.to_hash } ) if @payer.present?
26
+ hash_data.merge!({ "erro": @error.to_hash } ) if @error.present?
25
27
  ActiveSupport::HashWithIndifferentAccess.new(hash_data)
26
28
  end
27
29
 
@@ -33,7 +35,8 @@ module Bs2Api
33
35
  end_to_end_id: hash["endToEndId"],
34
36
  receiver: Bs2Api::Entities::Bank.from_response(hash["recebedor"]),
35
37
  payer: Bs2Api::Entities::Bank.from_response(hash["pagador"]),
36
- status: hash["status"]
38
+ status: hash["status"],
39
+ error: Bs2Api::Entities::Error.from_response(hash["erro"])
37
40
  )
38
41
  end
39
42
  end
@@ -21,15 +21,28 @@ module Bs2Api
21
21
  def check_payment_status(
22
22
  request_id,
23
23
  client_id: Bs2Api.configuration.client_id,
24
- client_secret: Bs2Api.configuration.client_secret
24
+ client_secret: Bs2Api.configuration.client_secret,
25
+ proxy: nil
25
26
  )
26
- url = request_status_url(request_id)
27
+
27
28
  bearer_token = Bs2Api::Request::Auth.token(
28
29
  client_id: client_id,
29
30
  client_secret: client_secret
30
31
  )
31
- headers = { 'Authorization': "Bearer #{bearer_token}" }
32
- response = HTTParty.get(url, headers: headers)
32
+
33
+ response = HTTParty.get(
34
+ request_status_url(request_id),
35
+ http_proxyaddr: proxy&.host,
36
+ http_proxyport: proxy&.port,
37
+ http_proxyuser: proxy&.user,
38
+ http_proxypass: proxy&.password,
39
+ headers: {
40
+ 'Authorization': "Bearer #{bearer_token}"
41
+ }
42
+ )
43
+
44
+ raise Bs2Api::Errors::Base, response.body.to_s unless response.success?
45
+
33
46
  Bs2Api::Entities::AsyncStatus.from_response response.parsed_response
34
47
  end
35
48
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bs2Api
4
- VERSION = '1.6.2'
4
+ VERSION = '1.9.0'
5
5
  end
data/lib/bs2_api.rb CHANGED
@@ -25,6 +25,7 @@ require 'bs2_api/errors/missing_bank'
25
25
 
26
26
  require 'bs2_api/entities/account'
27
27
  require 'bs2_api/entities/bank'
28
+ require 'bs2_api/entities/error'
28
29
  require 'bs2_api/entities/customer'
29
30
  require 'bs2_api/entities/payment'
30
31
  require 'bs2_api/entities/pix_key'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bs2_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kim Pastro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-03 00:00:00.000000000 Z
11
+ date: 2022-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -188,6 +188,7 @@ files:
188
188
  - ".gitignore"
189
189
  - ".rspec"
190
190
  - ".ruby-version"
191
+ - ".tool-versions"
191
192
  - CHANGELOG.md
192
193
  - Gemfile
193
194
  - Gemfile.lock
@@ -206,6 +207,7 @@ files:
206
207
  - lib/bs2_api/entities/async_status.rb
207
208
  - lib/bs2_api/entities/bank.rb
208
209
  - lib/bs2_api/entities/customer.rb
210
+ - lib/bs2_api/entities/error.rb
209
211
  - lib/bs2_api/entities/payment.rb
210
212
  - lib/bs2_api/entities/pix_key.rb
211
213
  - lib/bs2_api/errors/bad_request.rb