biro 0.5.1 → 0.6.1

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
  SHA1:
3
- metadata.gz: ce870fe733cb5c7dca7449dd5cda540b11e6e1e4
4
- data.tar.gz: 5e5b9f929a45ba1f3cdc09a7add1e5d8d64a03f3
3
+ metadata.gz: b85d643740f0ac819800593ecdab3bafb8ece684
4
+ data.tar.gz: d68b592260971cba15ee315bd937f3bf277caf0f
5
5
  SHA512:
6
- metadata.gz: 6eec94535e8da276edc96e0f3abf79882346763b8054d50d1fc4b91abbe85a715eaa2850cc533470e40a050a31e58e28e20e049792985f1bc9d993c1287cbcdf
7
- data.tar.gz: 5184c9445acc8df73b4801d9dbc10bbdfc6cbbbb51c6a6e5015064367ddf363cc7ec8ba4bc5906847076365746c62bb38ded367adc9c4d604c6d896fba0a9e9f
6
+ metadata.gz: df77c24d783785e5f79d2e76259856e9ba08fe99311ef7fc70f4c0a3f9d86df65aa686536720701fb942e3fa89e0fb83162a12075c8b9d26fb5a7458256b59e6
7
+ data.tar.gz: 5f1ab66871ff3d83cca9bb39b46cfd0601b6a452806a40b17d4a01a7926bd98629567ab3e2914a48d83fe7f6f86aeac763d518e4de9dbee970128f665e5d376c
@@ -34,22 +34,15 @@ module Biro
34
34
  def invoice_list
35
35
  return if operation_list.blank?
36
36
 
37
- Array.wrap(result.dig(:lista_de_resumo_das_operacoes)).map do |item|
38
- {
39
- :tax_variation => item[:variacao_cambial],
40
- :modality => item[:modalidade],
41
- :dues_list => invoice_list_item(item[:lista_de_vencimentos])
42
- }
37
+ list = []
38
+ result.dig(:lista_de_resumo_das_operacoes)&.dig(:lista_de_vencimentos).each do |item|
39
+ list.push({:code => item[:codigo_vencimento], :value => item[:valor_vencimento]})
43
40
  end
41
+ list
44
42
  end
45
43
 
46
- def invoice_list_item(items)
47
- Array.wrap(items).map do |item|
48
- {
49
- :code => item[:codigo_vencimento],
50
- :value => item[:valor_vencimento]
51
- }
52
- end
44
+ def exchange_rate_variation
45
+ operation_list&.dig(:variacao_cambial)
53
46
  end
54
47
 
55
48
  def processed_documents_percentage
@@ -1,17 +1,21 @@
1
- class BaseBuilder
2
- def initialize document, username, password
3
- @document = document
4
- @username = username
5
- @password = password
6
- end
1
+ module Biro
2
+ module Bvs
3
+ class BaseBuilder
4
+ def initialize document, username, password
5
+ @document = document
6
+ @username = username
7
+ @password = password
8
+ end
7
9
 
8
- def build
9
- raise "This method must be implemented"
10
- end
10
+ def build
11
+ raise "This method must be implemented"
12
+ end
11
13
 
12
- protected
14
+ protected
13
15
 
14
- def build_string
15
- @parameters.values.map { |p| p[:type] == "T" ? p[:value].to_s.ljust(p[:size], " ") : p[:value].to_s.rjust(p[:size],"0") }.join
16
+ def build_string
17
+ @parameters.values.map { |p| p[:type] == "T" ? p[:value].to_s.ljust(p[:size], " ") : p[:value].to_s.rjust(p[:size],"0") }.join
18
+ end
19
+ end
16
20
  end
17
21
  end
@@ -1,26 +1,30 @@
1
1
  require_relative 'base_builder'
2
2
 
3
- class DebitsRequestBuilder < BaseBuilder
4
- def build
5
- @parameters = {
6
- transaction: { size: 8, type: "T", value: "CSR60" },
7
- version: { size: 2, type: "T", value: "01" },
8
- reserved_applicant: { size: 10, type: "T", value: "" },
9
- reserved_bvs: { size: 20, type: "T", value: "" },
10
- service_code: { size: 8, type: "N", value: @username },
11
- password: { size: 8, type: "T", value: @password },
12
- search_type: { size: 8, type: "T", value: "SPCIT" },
13
- reserverd_bvs_2: { size: 4, type: "T", value: ""},
14
- response_type: { size: 1, type: "T", value: "2" },
15
- document_type: { size: 1, type: "T", value: "1" },
16
- document: { size: 14, type: "N", value: @document },
17
- reserverd_bvs_3: { size: 235, type: "T", value: ""},
18
- facilitator_code: { size: 8, type: "N", value: "" },
19
- reserverd_bvs_4: { size: 2, type: "T", value: ""},
20
- response_trans_type: { size: 1, type: "T", value: "C" },
21
- finish_marker: { size: 1, type: "T", value: "X" }
22
- }
3
+ module Biro
4
+ module Bvs
5
+ class DebitsRequestBuilder < BaseBuilder
6
+ def build
7
+ @parameters = {
8
+ transaction: { size: 8, type: "T", value: "CSR60" },
9
+ version: { size: 2, type: "T", value: "01" },
10
+ reserved_applicant: { size: 10, type: "T", value: "" },
11
+ reserved_bvs: { size: 20, type: "T", value: "" },
12
+ service_code: { size: 8, type: "N", value: @username },
13
+ password: { size: 8, type: "T", value: @password },
14
+ search_type: { size: 8, type: "T", value: "SPCIT" },
15
+ reserverd_bvs_2: { size: 4, type: "T", value: ""},
16
+ response_type: { size: 1, type: "T", value: "2" },
17
+ document_type: { size: 1, type: "T", value: "1" },
18
+ document: { size: 14, type: "N", value: @document },
19
+ reserverd_bvs_3: { size: 235, type: "T", value: ""},
20
+ facilitator_code: { size: 8, type: "N", value: "" },
21
+ reserverd_bvs_4: { size: 2, type: "T", value: ""},
22
+ response_trans_type: { size: 1, type: "T", value: "C" },
23
+ finish_marker: { size: 1, type: "T", value: "X" }
24
+ }
23
25
 
24
- build_string
26
+ build_string
27
+ end
28
+ end
25
29
  end
26
30
  end
@@ -1,45 +1,49 @@
1
- class DebitsResponseBuilder
2
- def initialize body
3
- @body = body.gsub("\n", '').scan(/<PRE>([^<>]*)<\/PRE>/imu).flatten[0]
4
- end
5
-
6
- def transaction
7
- @body[0..7]
8
- end
9
-
10
- def version
11
- @body[8..9]
12
- end
13
-
14
- def reserved_applicant
15
- @body[10..19]
16
- end
17
-
18
- def reserved_bvs
19
- @body[20..39]
20
- end
21
-
22
- def response_type
23
- @body[56]
24
- end
25
-
26
- def return_code
27
- @body[57]
28
- end
29
-
30
- def response_text_size
31
- @body[58..61].to_i
32
- end
33
-
34
- def response_text
35
- @body[62,response_text_size]
36
- end
37
-
38
- def error_message
39
- response_text[8..100]
40
- end
41
-
42
- def debits_info
43
- response_text[6]
1
+ module Biro
2
+ module Bvs
3
+ class DebitsResponseBuilder
4
+ def initialize body
5
+ @body = body.gsub("\n", '').scan(/<PRE>([^<>]*)<\/PRE>/imu).flatten[0]
6
+ end
7
+
8
+ def transaction
9
+ @body[0..7]
10
+ end
11
+
12
+ def version
13
+ @body[8..9]
14
+ end
15
+
16
+ def reserved_applicant
17
+ @body[10..19]
18
+ end
19
+
20
+ def reserved_bvs
21
+ @body[20..39]
22
+ end
23
+
24
+ def response_type
25
+ @body[56]
26
+ end
27
+
28
+ def return_code
29
+ @body[57]
30
+ end
31
+
32
+ def response_text_size
33
+ @body[58..61].to_i
34
+ end
35
+
36
+ def response_text
37
+ @body[62,response_text_size]
38
+ end
39
+
40
+ def error_message
41
+ response_text[8..100]
42
+ end
43
+
44
+ def debits_info
45
+ response_text[6]
46
+ end
47
+ end
44
48
  end
45
49
  end
@@ -1,24 +1,28 @@
1
- class ScoreRequestBuilder < BaseBuilder
2
- def build
3
- @parameters = {
4
- transaction: { size: 8, type: "T", value: "CSR60" },
5
- version: { size: 2, type: "T", value: "01" },
6
- reserved_applicant: { size: 10, type: "T", value: "" },
7
- reserved_bvs: { size: 20, type: "T", value: "" },
8
- service_code: { size: 8, type: "N", value: @username },
9
- password: { size: 8, type: "T", value: @password },
10
- search_type: { size: 8, type: "T", value: "SCORE" },
11
- search_version: { size: 2, type: "T", value: "04" },
12
- response_type: { size: 1, type: "T", value: "2" },
13
- response_trans_type: { size: 1, type: "T", value: "C" },
14
- document_type: { size: 1, type: "T", value: "1" },
15
- document: { size: 14, type: "N", value: @document },
16
- score_model: { size: 2, type: "T", value: "63" },
17
- source_cep: { size: 8, type: "N", value: "" },
18
- facilitator_code: { size: 8, type: "N", value: "" },
19
- finish_marker: { size: 1, type: "T", value: "X" }
20
- }
1
+ module Biro
2
+ module Bvs
3
+ class ScoreRequestBuilder < BaseBuilder
4
+ def build
5
+ @parameters = {
6
+ transaction: { size: 8, type: "T", value: "CSR60" },
7
+ version: { size: 2, type: "T", value: "01" },
8
+ reserved_applicant: { size: 10, type: "T", value: "" },
9
+ reserved_bvs: { size: 20, type: "T", value: "" },
10
+ service_code: { size: 8, type: "N", value: @username },
11
+ password: { size: 8, type: "T", value: @password },
12
+ search_type: { size: 8, type: "T", value: "SCORE" },
13
+ search_version: { size: 2, type: "T", value: "04" },
14
+ response_type: { size: 1, type: "T", value: "2" },
15
+ response_trans_type: { size: 1, type: "T", value: "C" },
16
+ document_type: { size: 1, type: "T", value: "1" },
17
+ document: { size: 14, type: "N", value: @document },
18
+ score_model: { size: 2, type: "T", value: "63" },
19
+ source_cep: { size: 8, type: "N", value: "" },
20
+ facilitator_code: { size: 8, type: "N", value: "" },
21
+ finish_marker: { size: 1, type: "T", value: "X" }
22
+ }
21
23
 
22
- build_string
24
+ build_string
25
+ end
26
+ end
23
27
  end
24
28
  end
@@ -1,93 +1,97 @@
1
- class ScoreResponseBuilder
2
- def initialize body
3
- @body = body.gsub("\n", '').scan(/<PRE>([^<>]*)<\/PRE>/imu).flatten[0]
4
- end
5
-
6
- def transaction
7
- @body[0..7]
8
- end
9
-
10
- def version
11
- @body[8..9]
12
- end
13
-
14
- def reserved_applicant
15
- @body[10..19]
16
- end
17
-
18
- def reserved_bvs
19
- @body[20..39]
20
- end
21
-
22
- def service_code
23
- @body[40..47]
24
- end
25
-
26
- def search_type
27
- @body[48..55]
28
- end
29
-
30
- def search_version
31
- @body[56..57]
32
- end
33
-
34
- def response_type
35
- @body[58]
36
- end
37
-
38
- def return_code
39
- @body[59]
40
- end
41
-
42
- def search_number
43
- @body[60..66]
44
- end
45
-
46
- def response_text_size
47
- @body[67..70].to_i
48
- end
49
-
50
- def response_text
51
- @body[71,response_text_size]
52
- end
53
-
54
- def response_text_init
55
- response_text[0..2]
56
- end
57
-
58
- def response_text_type
59
- response_text[3..5]
60
- end
61
-
62
- def response_text_is_present
63
- response_text[6]
64
- end
65
-
66
- def response_text_document_type
67
- response_text[7]
68
- end
69
-
70
- def response_text_document
71
- response_text[8..21]
72
- end
73
-
74
- def response_text_name
75
- response_text[22..136]
76
- end
77
-
78
- def response_text_result_score
79
- response_text[137..140]
80
- end
81
-
82
- def response_text_description
83
- response_text[141..160]
84
- end
85
-
86
- def response_text_over
87
- response_text[160..500]
88
- end
89
-
90
- def error_message
91
- response_text[8..100]
1
+ module Biro
2
+ module Bvs
3
+ class ScoreResponseBuilder
4
+ def initialize body
5
+ @body = body.gsub("\n", '').scan(/<PRE>([^<>]*)<\/PRE>/imu).flatten[0]
6
+ end
7
+
8
+ def transaction
9
+ @body[0..7]
10
+ end
11
+
12
+ def version
13
+ @body[8..9]
14
+ end
15
+
16
+ def reserved_applicant
17
+ @body[10..19]
18
+ end
19
+
20
+ def reserved_bvs
21
+ @body[20..39]
22
+ end
23
+
24
+ def service_code
25
+ @body[40..47]
26
+ end
27
+
28
+ def search_type
29
+ @body[48..55]
30
+ end
31
+
32
+ def search_version
33
+ @body[56..57]
34
+ end
35
+
36
+ def response_type
37
+ @body[58]
38
+ end
39
+
40
+ def return_code
41
+ @body[59]
42
+ end
43
+
44
+ def search_number
45
+ @body[60..66]
46
+ end
47
+
48
+ def response_text_size
49
+ @body[67..70].to_i
50
+ end
51
+
52
+ def response_text
53
+ @body[71,response_text_size]
54
+ end
55
+
56
+ def response_text_init
57
+ response_text[0..2]
58
+ end
59
+
60
+ def response_text_type
61
+ response_text[3..5]
62
+ end
63
+
64
+ def response_text_is_present
65
+ response_text[6]
66
+ end
67
+
68
+ def response_text_document_type
69
+ response_text[7]
70
+ end
71
+
72
+ def response_text_document
73
+ response_text[8..21]
74
+ end
75
+
76
+ def response_text_name
77
+ response_text[22..136]
78
+ end
79
+
80
+ def response_text_result_score
81
+ response_text[137..140]
82
+ end
83
+
84
+ def response_text_description
85
+ response_text[141..160]
86
+ end
87
+
88
+ def response_text_over
89
+ response_text[160..500]
90
+ end
91
+
92
+ def error_message
93
+ response_text[8..100]
94
+ end
95
+ end
92
96
  end
93
97
  end
@@ -31,10 +31,6 @@ module Biro
31
31
 
32
32
  private
33
33
 
34
- def savon_options
35
- { strip_namespaces: false }
36
- end
37
-
38
34
  def verify_response responses
39
35
  raise AuthenticationError.new("Error at Midia100 request: #{responses[:registration].body[:consultar_response][:consultar_result]}") if responses[:registration]&.body[:consultar_response][:consultar_result]&.include? "Usuário ou Senha Estão Incorretos"
40
36
  raise DocumentNotFoundError.new("Error at Midia100 request: #{responses[:registration].body[:consultar_response][:consultar_result]}") if responses[:registration]&.body[:consultar_response][:consultar_result]&.include? "Cpf Inválido"
@@ -159,7 +159,7 @@ module Biro
159
159
  end
160
160
 
161
161
  def result(data)
162
- Nori.new(convert_attributes_to: ->(key, value) { [] }).parse(data[:consultar_response][:consultar_result])['NewDataSet'] unless data.nil?
162
+ Nori.new.parse(data[:consultar_response][:consultar_result])['NewDataSet'] unless data.nil?
163
163
  end
164
164
  end
165
165
  end
@@ -1,15 +1,19 @@
1
1
  require 'active_support/core_ext/array'
2
2
 
3
- class LoginBuilder
4
- def initialize response
5
- @body = response.body
6
- end
3
+ module Biro
4
+ module Ph3a
5
+ class LoginBuilder
6
+ def initialize response
7
+ @body = response.body
8
+ end
7
9
 
8
- def token
9
- login_result.dig(:token)
10
- end
10
+ def token
11
+ login_result.dig(:token)
12
+ end
11
13
 
12
- def login_result
13
- @body.dig(:login_response).dig(:login_result)
14
- end
14
+ def login_result
15
+ @body.dig(:login_response).dig(:login_result)
16
+ end
17
+ end
18
+ end
15
19
  end
@@ -25,7 +25,6 @@ module Biro
25
25
  Response.new(response)
26
26
  rescue => e
27
27
  Biro.log(:warn, "Unable to process Ph3a request")
28
- raise AuthenticationError.new("Error at PH3A request: #{e.message}") if e.message.include?("User not authenticated")
29
28
  raise StandardError.new("Error at PH3A request: #{e.message}")
30
29
  end
31
30
  end
data/lib/biro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Biro
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noverde Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2017-07-26 00:00:00.000000000 Z
14
+ date: 2017-07-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: savon