credigy 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 7ba7f66fbfadca72a2d40367d7cdbe100f37b762
4
- data.tar.gz: 3643efc803a52c6691d45ee50e879dc9992d01f7
3
+ metadata.gz: f4ba297e8eafe29904b6d98ab0b67c7387bb260c
4
+ data.tar.gz: 06d60590ed7e5b0a2f9b50751aed4b8d664e4014
5
5
  SHA512:
6
- metadata.gz: 7b196f7d956022a8b0546f56ba5e5169a6c7ccb8eb002033494f5f41630edd3d4f04289f50364bab0f4f4a8542f2689b093c20ad039f514a7d6ab18ca48ced58
7
- data.tar.gz: c238cb68004c1c4f298cbd8167afe1a7005962d1681de6672653c3752684ce19ab17c9da6b1608d86a8f4031ad446b6952c29439c3e6260c0157a7802a6a7a51
6
+ metadata.gz: cf37c18040aaaf24c3ec1122ba5a5dbb1652bce257b08b3190252d3235beb4d7a3a62c26f714d80787e5df149538b6a749070c8e6049784c783ca1422e5a6479
7
+ data.tar.gz: 3d9d279b3abfff3e8cb25a974db31a59b3983d2966cfc54422477937844776ae823818b7e4063e4e5f224f0c17a7ce328bb8d932281fb68339a09a7c7c8f86ac
@@ -1,3 +1,14 @@
1
+ ### 0.1.2 (unreleased)
2
+
3
+ * Implementa `GetInstallments`
4
+ * Corrige passagem de token na classe `Boleto`
5
+ * Corrige `body` da resposta de `Boleto`
6
+ * Refatora classe `Response` para permitir override de chaves de acesso ao conteúdo da resposta
7
+ * Substitui `Array()` por `Array.wrap()` para evitar de converter chaves de um hash para array
8
+ * Levanta exception `BoletoNotAvailable` se ainda não tiver boleto disponível
9
+ * Levanta exception `InstallmentNotAvailable` se ainda não tiver parcela disponível
10
+ * Implementa `GetLinhaDigitavel`
11
+
1
12
  ### 0.1.1 (17/10/2018)
2
13
 
3
14
  * Levanta exception se o token gerado não estiver preenchido em `Login`
data/README.md CHANGED
@@ -33,6 +33,8 @@ Ou instale você mesmo:
33
33
  - [GetBoleto](#getboleto)
34
34
  - [GetCampaignNegotiation](#getcampaignnegotiation)
35
35
  - [GetEmails](#getemails)
36
+ - [GetInstallments](#getinstallments)
37
+ - [GetLinhaDigitavel](#getlinhadigitavel)
36
38
  - [GetProviders](#getproviders)
37
39
  - [SaveEmail](#saveemail)
38
40
 
@@ -86,6 +88,20 @@ response = Credigy::Email.new(authorization_token).call
86
88
  response.all # array de emails
87
89
  ```
88
90
 
91
+ ### GetInstallments
92
+
93
+ ```ruby
94
+ response = Credigy::Installment.new(authorization_token, debtor_agreement_id: 'z').call
95
+ response.all # installments
96
+ ```
97
+
98
+ ### GetLinhaDigitavel
99
+
100
+ ```ruby
101
+ response = Credigy::Line.new(authorization_token, debtor_agreement_id: 'z', installment_number: 'y').call
102
+ response.line # linha digitavel
103
+ ```
104
+
89
105
  ### GetProviders
90
106
 
91
107
  ```ruby
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_dependency 'savon', '~> 2'
24
+ spec.add_dependency 'activesupport'
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.16"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,3 +1,6 @@
1
+ require 'active_support'
2
+ require 'active_support/core_ext/array/wrap'
3
+
1
4
  require "credigy/version"
2
5
 
3
6
  require "credigy/config"
@@ -6,7 +9,9 @@ require "credigy/boleto"
6
9
  require "credigy/campaign_negotiation"
7
10
  require "credigy/email"
8
11
  require "credigy/email_creation"
12
+ require "credigy/installment"
9
13
  require "credigy/login"
14
+ require "credigy/line"
10
15
  require "credigy/promise"
11
16
  require "credigy/provider"
12
17
  require "credigy/legal_terms_acceptance"
@@ -3,7 +3,7 @@ require_relative './response'
3
3
  module Credigy
4
4
  class AccountResponse < Response
5
5
  def all
6
- Array(body[:accounts][:account])
6
+ Array.wrap(body.dig(:accounts, :account))
7
7
  end
8
8
  end
9
9
  end
@@ -6,6 +6,7 @@ module Credigy
6
6
  attr_reader :params
7
7
 
8
8
  def initialize(authorization_token, **params)
9
+ @authorization_token = authorization_token
9
10
  @params = params
10
11
  end
11
12
 
@@ -1,9 +1,23 @@
1
1
  require_relative './response'
2
2
 
3
3
  module Credigy
4
+ class BoletoNotAvailable < StandardError; end
5
+
4
6
  class BoletoResponse < Response
5
7
  def pdf
6
- body[:boleto]
8
+ raise(BoletoNotAvailable, body) if boleto_not_available?
9
+
10
+ Base64.decode64(body[:boleto])
11
+ end
12
+
13
+ def sub_root_key
14
+ :ws_result_boleto
15
+ end
16
+
17
+ private
18
+
19
+ def boleto_not_available?
20
+ body[:boleto].nil?
7
21
  end
8
22
  end
9
23
  end
@@ -16,8 +16,8 @@ module Credigy
16
16
  def message
17
17
  {
18
18
  'cred:Ownerid' => params[:owner_id],
19
- 'cred:Accounts' => Array(params[:accounts]).join(';'),
20
- 'cred:Providers' => Array(params[:provider_ids]).join(';')
19
+ 'cred:Accounts' => Array.wrap(params[:accounts]).join(';'),
20
+ 'cred:Providers' => Array.wrap(params[:provider_ids]).join(';')
21
21
  }
22
22
  end
23
23
  end
@@ -3,7 +3,7 @@ require_relative './response'
3
3
  module Credigy
4
4
  class CampaignNegotiationResponse < Response
5
5
  def all
6
- Array(body[:campaign_negotiations][:campaign_negotiation])
6
+ Array.wrap(body[:campaign_negotiations][:campaign_negotiation])
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ require_relative './response'
3
3
  module Credigy
4
4
  class EmailResponse < Response
5
5
  def all
6
- Array(body[:emails][:email])
6
+ Array.wrap(body[:emails][:email])
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,21 @@
1
+ require_relative './authorized'
2
+ require_relative './installment_response'
3
+
4
+ module Credigy
5
+ class Installment < Authorized
6
+ attr_reader :debtor_agreement_id
7
+
8
+ def initialize(authorization_token, debtor_agreement_id:)
9
+ @authorization_token = authorization_token
10
+ @debtor_agreement_id = debtor_agreement_id
11
+ end
12
+
13
+ def operation
14
+ :get_installments
15
+ end
16
+
17
+ def message
18
+ { 'cred:debtoragreementid' => debtor_agreement_id }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ require_relative './response'
2
+
3
+ module Credigy
4
+ class InstallmentNotAvailable < StandardError; end
5
+
6
+ class InstallmentResponse < Response
7
+ def all
8
+ raise(InstallmentNotAvailable, body) if installment_not_available?
9
+
10
+ body[:installments][:installment]
11
+ end
12
+
13
+ private
14
+
15
+ def installment_not_available?
16
+ body[:installments].nil?
17
+ end
18
+ end
19
+ end
@@ -2,5 +2,16 @@ require_relative './response'
2
2
 
3
3
  module Credigy
4
4
  class LegalTermsAcceptanceResponse < Response
5
+ def debtor_agreement_id
6
+ body[:debtor_agreement_id]
7
+ end
8
+
9
+ def invoice_number
10
+ body[:invoice_number]
11
+ end
12
+
13
+ def sub_root_key
14
+ :negotiation_result
15
+ end
5
16
  end
6
17
  end
@@ -0,0 +1,24 @@
1
+ require_relative './authorized'
2
+ require_relative './line_response'
3
+
4
+ module Credigy
5
+ class Line < Authorized
6
+ attr_reader :params
7
+
8
+ def initialize(authorization_token, **params)
9
+ @authorization_token = authorization_token
10
+ @params = params
11
+ end
12
+
13
+ def operation
14
+ :get_linha_digitavel
15
+ end
16
+
17
+ def message
18
+ {
19
+ 'cred:debtorAgreementID' => params[:debtor_agreement_id],
20
+ 'cred:installmentNumber' => params[:installment_number]
21
+ }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ require_relative './response'
2
+
3
+ module Credigy
4
+ class LineResponse < Response
5
+ def line
6
+ body[:linha_digitavel]
7
+ end
8
+
9
+ def sub_root_key
10
+ :ws_result_linha_digitavel
11
+ end
12
+ end
13
+ end
@@ -23,7 +23,7 @@ module Credigy
23
23
 
24
24
  def message
25
25
  {
26
- 'cred:Accounts' => Array(params[:accounts]).join(';'),
26
+ 'cred:Accounts' => Array.wrap(params[:accounts]).join(';'),
27
27
  'cred:TotalInstallments' => params[:installments],
28
28
  'cred:FirstInstallmentDate' => params[:first_installment_date],
29
29
  'cred:TotalAgreementAmount' => params[:agreement_value]
@@ -3,7 +3,7 @@ require_relative './response'
3
3
  module Credigy
4
4
  class ProviderResponse < Response
5
5
  def all
6
- Array(body[:providers][:provider])
6
+ Array.wrap(body[:providers][:provider])
7
7
  end
8
8
  end
9
9
  end
@@ -11,8 +11,15 @@ module Credigy
11
11
  end
12
12
 
13
13
  def body
14
- raw_response
15
- .body["#{requester.operation}_response".to_sym]["#{requester.operation}_result".to_sym]
14
+ raw_response.body[root_key][sub_root_key]
15
+ end
16
+
17
+ def root_key
18
+ "#{requester.operation}_response".to_sym
19
+ end
20
+
21
+ def sub_root_key
22
+ "#{requester.operation}_result".to_sym
16
23
  end
17
24
  end
18
25
  end
@@ -1,3 +1,3 @@
1
1
  module Credigy
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: credigy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Glauco Custódio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-17 00:00:00.000000000 Z
11
+ date: 2018-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -112,8 +126,12 @@ files:
112
126
  - lib/credigy/email_creation.rb
113
127
  - lib/credigy/email_creation_response.rb
114
128
  - lib/credigy/email_response.rb
129
+ - lib/credigy/installment.rb
130
+ - lib/credigy/installment_response.rb
115
131
  - lib/credigy/legal_terms_acceptance.rb
116
132
  - lib/credigy/legal_terms_acceptance_response.rb
133
+ - lib/credigy/line.rb
134
+ - lib/credigy/line_response.rb
117
135
  - lib/credigy/login.rb
118
136
  - lib/credigy/login_response.rb
119
137
  - lib/credigy/promise.rb