sigep_web 0.2.7 → 1.0.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.
Files changed (37) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +31 -0
  3. data/.gitignore +4 -3
  4. data/README.md +1 -2
  5. data/lib/sigep_web.rb +9 -9
  6. data/lib/sigep_web/calculate_digit_checker.rb +21 -18
  7. data/lib/sigep_web/generate_labels_digit_verifier.rb +20 -19
  8. data/lib/sigep_web/models/additional_service.rb +14 -0
  9. data/lib/sigep_web/models/dimension_object.rb +18 -0
  10. data/lib/sigep_web/models/postal_object.rb +27 -0
  11. data/lib/sigep_web/{Models → models}/receiver.rb +3 -0
  12. data/lib/sigep_web/{Models → models}/sender.rb +3 -0
  13. data/lib/sigep_web/postage_card_status.rb +15 -18
  14. data/lib/sigep_web/request_labels.rb +43 -43
  15. data/lib/sigep_web/request_plp_services.rb +25 -25
  16. data/lib/sigep_web/request_range.rb +28 -24
  17. data/lib/sigep_web/request_xml_plp.rb +18 -19
  18. data/lib/sigep_web/search_client.rb +20 -20
  19. data/lib/sigep_web/service_availability.rb +26 -25
  20. data/lib/sigep_web/version.rb +3 -1
  21. data/lib/sigep_web/web_service_interface_api.rb +4 -5
  22. data/lib/sigep_web/web_service_reverse_logistic_api.rb +5 -3
  23. data/lib/sigep_web/xml/additional_service.rb +27 -0
  24. data/lib/sigep_web/{XML → xml}/dimension_object.rb +3 -0
  25. data/lib/sigep_web/xml/postal_object.rb +54 -0
  26. data/lib/sigep_web/{XML → xml}/receiver.rb +3 -0
  27. data/lib/sigep_web/zip_query.rb +15 -16
  28. data/sigep_web.gemspec +19 -10
  29. metadata +130 -69
  30. data/.codeclimate.yml +0 -28
  31. data/.travis.yml +0 -4
  32. data/Gemfile.lock +0 -98
  33. data/lib/sigep_web/Models/additional_service.rb +0 -12
  34. data/lib/sigep_web/Models/dimension_object.rb +0 -15
  35. data/lib/sigep_web/Models/postal_object.rb +0 -21
  36. data/lib/sigep_web/XML/additional_service.rb +0 -24
  37. data/lib/sigep_web/XML/postal_object.rb +0 -50
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7361634528c0483b2de3458754a26a4a77365cc9
4
- data.tar.gz: b8c6a0f10b06f462b918495060d947999d0da776
2
+ SHA256:
3
+ metadata.gz: 12df3b443d893a1363a805d9d34c1fe16996dc9cf6cb9f6f46535d9191b9db22
4
+ data.tar.gz: e56fc299f3c1d6107cc3d751fc01be3101d6b123e0deb36ddf7e7befcbd27651
5
5
  SHA512:
6
- metadata.gz: f8bf029a10fe3c0556dda07793047b1de21bdeaf2eb76a3b2d2d9b7b650a090e7ea19b603d843bdeeaf409ee4e93b448a081ce75dbadf66ee492931f6c64cb66
7
- data.tar.gz: bf2dd161f9c1823913b7e3228b8d69b83c7008d5b4b29d5180f8fd60cef3d9ea51102f78d8371494f435fa8487e70130a20dafb416b800dea3d6d236c257f84f
6
+ metadata.gz: 39397b656be869fd3e79209ac688ba567543c26075db8f9bbfd03c202e8ae07e48b7c6ba487ae874685c4a7ec29e3cc553a6778e87b625c4a7c20e654b8d9b0b
7
+ data.tar.gz: 6ca1802855b3cb22b562f7586258416580b1aaa63e914382e088205e3d768c04025dfe42be33098b3b0c01ed706e575fb4c1cae12c121de70347d524bb059b33
@@ -0,0 +1,31 @@
1
+ name: Ruby
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+
11
+ - uses: actions/checkout@v2
12
+
13
+ - name: Set up Ruby 2.6
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.6.x
17
+
18
+ - name: Build and test
19
+ env:
20
+ GEM_ENV: test
21
+ COVERALLS_REPO_TOKEN: <%= ENV['COVERALLS_REPO_TOKEN'] %>
22
+ run: |
23
+ gem install bundler
24
+ bundle install --jobs 4 --retry 3
25
+ bundle exec rspec
26
+
27
+ - name: Coveralls
28
+ uses: coverallsapp/github-action@master
29
+ with:
30
+ github-token: ${{ secrets.GITHUB_TOKEN }}
31
+
data/.gitignore CHANGED
@@ -27,9 +27,10 @@ build/
27
27
 
28
28
  # for a library or gem, you might want to ignore these files since the code is
29
29
  # intended to run in multiple environments; otherwise, check them in:
30
- # Gemfile.lock
31
- # .ruby-version
32
- # .ruby-gemset
30
+ Gemfile.lock
31
+ .ruby-version
32
+ .ruby-gemset
33
+ .tool-versions
33
34
 
34
35
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
36
  .rvmrc
data/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # Sigep Web
2
2
 
3
- [![Build Status](https://travis-ci.org/marceloperini/sigep_web.svg?branch=master)](https://travis-ci.org/marceloperini/sigep_web)
3
+ ![Build Status](https://github.com/marceloperini/sigep_web/workflows/Ruby/badge.svg)
4
4
  [![Gem Version](https://badge.fury.io/rb/sigep_web.svg)](https://badge.fury.io/rb/sigep_web)
5
- [![Code Climate](https://codeclimate.com/github/Sidoniuns/sigep_web/badges/gpa.svg)](https://codeclimate.com/github/Sidoniuns/sigep_web)
6
5
  [![Coverage Status](https://coveralls.io/repos/github/marceloperini/sigep_web/badge.svg?branch=master)](https://coveralls.io/github/marceloperini/sigep_web?branch=master)
7
6
  [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DWFWT6N2YCZTG)
8
7
 
data/lib/sigep_web.rb CHANGED
@@ -3,15 +3,15 @@ require 'sigep_web/configuration'
3
3
  require 'sigep_web/web_service_interface_api'
4
4
  require 'sigep_web/web_service_reverse_logistic_api'
5
5
  require 'sigep_web/authenticate'
6
- require 'sigep_web/XML/postal_object'
7
- require 'sigep_web/XML/receiver'
8
- require 'sigep_web/XML/additional_service'
9
- require 'sigep_web/XML/dimension_object'
10
- require 'sigep_web/Models/sender'
11
- require 'sigep_web/Models/postal_object'
12
- require 'sigep_web/Models/receiver'
13
- require 'sigep_web/Models/additional_service'
14
- require 'sigep_web/Models/dimension_object'
6
+ require 'sigep_web/xml/postal_object'
7
+ require 'sigep_web/xml/receiver'
8
+ require 'sigep_web/xml/additional_service'
9
+ require 'sigep_web/xml/dimension_object'
10
+ require 'sigep_web/models/sender'
11
+ require 'sigep_web/models/postal_object'
12
+ require 'sigep_web/models/receiver'
13
+ require 'sigep_web/models/additional_service'
14
+ require 'sigep_web/models/dimension_object'
15
15
  require 'sigep_web/service_availability'
16
16
  require 'sigep_web/search_client'
17
17
  require 'sigep_web/zip_query'
@@ -1,31 +1,34 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  class CalculateDigitChecker < WebServiceReverseLogisticApi
3
- def initialize(options = {})
4
- @number = options[:number]
5
+ def initialize(number:)
6
+ @number = number
7
+
5
8
  super()
6
9
  end
7
10
 
8
11
  def request
9
12
  authenticate = SigepWeb.configuration.authenticate
10
13
 
11
- begin
12
- response = process(:calcular_digito_verificador, {
13
- usuario: authenticate.user,
14
- senha: authenticate.password,
15
- codAdministrativo: authenticate.administrative_code,
16
- numero: @number
17
- }).to_hash[:calcular_digito_verificador_response][:return]
14
+ response = process(:calcular_digito_verificador,
15
+ usuario: authenticate.user,
16
+ senha: authenticate.password,
17
+ codAdministrativo: authenticate.administrative_code,
18
+ numero: number
19
+ ).to_hash[:calcular_digito_verificador_response][:return]
18
20
 
19
- {
20
- success: true,
21
- response: response
22
- }
23
- rescue Savon::SOAPFault => msg
24
- {
25
- success: false,
26
- error: msg
27
- }
21
+ if response[:cod_erro] == '0'
22
+ { success: true, response: response }
23
+ else
24
+ { success: false, error: response }
28
25
  end
26
+ rescue Savon::SOAPFault => exception
27
+ { success: false, error: exception.message }
29
28
  end
29
+
30
+ private
31
+
32
+ attr_reader :number
30
33
  end
31
34
  end
@@ -1,29 +1,30 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  class GenerateLabelsDigitVerifier < WebServiceInterfaceApi
3
- def initialize(options = {})
4
- @labels = options[:labels]
5
+ def initialize(labels:)
6
+ @labels = labels
7
+
5
8
  super()
6
9
  end
7
10
 
8
11
  def request
9
12
  authenticate = SigepWeb.configuration.authenticate
10
- begin
11
- response = process(:gera_digito_verificador_etiquetas, {
12
- etiquetas: @labels,
13
- usuario: authenticate.user,
14
- senha: authenticate.password
15
- }).to_hash[:gera_digito_verificador_etiquetas_response][:return]
16
-
17
- {
18
- success: true,
19
- response: response
20
- }
21
- rescue Savon::SOAPFault => msg
22
- {
23
- success: false,
24
- error: msg
25
- }
26
- end
13
+
14
+ response = process(:gera_digito_verificador_etiquetas,
15
+ etiquetas: labels,
16
+ usuario: authenticate.user,
17
+ senha: authenticate.password
18
+ ).to_hash[:gera_digito_verificador_etiquetas_response][:return]
19
+
20
+ { success: true, response: response }
21
+ rescue Savon::SOAPFault => e
22
+ { success: false, error: e.message }
27
23
  end
24
+
25
+ private
26
+
27
+ attr_reader :labels
28
28
  end
29
29
  end
30
+
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SigepWeb
4
+ module Models
5
+ class AdditionalService
6
+ attr_accessor :codes, :declareted_value
7
+
8
+ def initialize(codes:, declareted_value:)
9
+ @codes = codes
10
+ @declareted_value = declareted_value
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SigepWeb
4
+ module Models
5
+ class DimensionObject
6
+ attr_accessor :object_type, :height, :width, :length, :diameter
7
+
8
+ def initialize(object_type:, height:, width:, length:, diameter:)
9
+ @object_type = object_type
10
+ @height = height
11
+ @width = width
12
+ @length = length
13
+ @diameter = diameter
14
+ end
15
+ end
16
+ end
17
+ end
18
+
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SigepWeb
4
+ module Models
5
+ class PostalObject
6
+ attr_accessor :label_number, :postage_code_service, :cubage,
7
+ :weight, :receiver, :dimension_object, :processing_status,
8
+ :additional_service_codes, :additional_services_declared_value
9
+
10
+ def initialize(label_number:, postage_code_service:, cubage:, weight:,
11
+ receiver:, dimension_object:, processing_status:,
12
+ additional_service_codes: nil,
13
+ additional_services_declared_value: nil)
14
+ @label_number = label_number
15
+ @postage_code_service = postage_code_service
16
+ @cubage = cubage
17
+ @weight = weight
18
+ @receiver = receiver
19
+ @dimension_object = dimension_object
20
+ @processing_status = processing_status
21
+ @additional_service_codes = additional_service_codes
22
+ @additional_services_declared_value = additional_services_declared_value
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  module Models
3
5
  class Receiver
@@ -31,3 +33,4 @@ module SigepWeb
31
33
  end
32
34
  end
33
35
  end
36
+
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  module Models
3
5
  class Sender
@@ -72,3 +74,4 @@ module SigepWeb
72
74
  end
73
75
  end
74
76
  end
77
+
@@ -1,29 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  class PostageCardStatus < WebServiceInterfaceApi
3
- def initialize(options = {})
4
- @postage_number_card = options[:postage_number_card]
5
+ def initialize(postage_number_card:)
6
+ @postage_number_card = postage_number_card
7
+
5
8
  super()
6
9
  end
7
10
 
8
11
  def request
9
12
  authenticate = SigepWeb.configuration.authenticate
10
- begin
11
- response = process(:get_status_cartao_postagem, {
12
- numeroCartaoPostagem: @postage_number_card,
13
- usuario: authenticate.user,
14
- senha: authenticate.password
15
- }).to_hash[:get_status_cartao_postagem_response][:return]
16
13
 
17
- {
18
- success: true,
19
- response: response
20
- }
21
- rescue Savon::SOAPFault => msg
22
- {
23
- success: false,
24
- error: msg
25
- }
26
- end
14
+ response = process(:get_status_cartao_postagem,
15
+ numeroCartaoPostagem: @postage_number_card,
16
+ usuario: authenticate.user,
17
+ senha: authenticate.password
18
+ ).to_hash[:get_status_cartao_postagem_response][:return]
19
+
20
+ { success: true, response: response }
21
+ rescue Savon::SOAPFault => e
22
+ { success: false, error: e.message }
27
23
  end
28
24
  end
29
25
  end
26
+
@@ -1,58 +1,58 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  class RequestLabels < WebServiceInterfaceApi
3
- def initialize(options = {})
4
- @receiver_type = options[:receiver_type]
5
- @identifier = options[:identifier]
6
- @id_service = options[:id_service]
7
- @qt_labels = options[:qt_labels]
5
+ def initialize(receiver_type:, identifier:, id_service:, qt_labels:)
6
+ @receiver_type = receiver_type
7
+ @identifier = identifier
8
+ @id_service = id_service
9
+ @qt_labels = qt_labels
10
+
8
11
  super()
9
12
  end
10
13
 
11
14
  def request
12
15
  authenticate = SigepWeb.configuration.authenticate
13
- begin
14
- response = process(:solicita_etiquetas, {
15
- tipoDestinatario: @receiver_type,
16
- identificador: @identifier,
17
- idServico: @id_service,
18
- qtdEtiquetas: @qt_labels,
19
- usuario: authenticate.user,
20
- senha: authenticate.password
21
- }).to_hash[:solicita_etiquetas_response][:return]
22
-
23
- {
24
- success: true,
25
- response: build_label_array(response)
26
- }
27
- rescue Savon::SOAPFault => msg
28
- {
29
- success: false,
30
- error: msg
31
- }
32
- end
16
+
17
+ response = process(:solicita_etiquetas,
18
+ tipoDestinatario: receiver_type,
19
+ identificador: identifier,
20
+ idServico: id_service,
21
+ qtdEtiquetas: qt_labels,
22
+ usuario: authenticate.user,
23
+ senha: authenticate.password
24
+ ).to_hash[:solicita_etiquetas_response][:return]
25
+
26
+ { success: true, response: build_label_array(response) }
27
+ rescue Savon::SOAPFault => e
28
+ { success: false, error: e.message }
33
29
  end
34
30
 
35
31
  private
36
- def build_label_array(label_range)
37
- label_array = []
38
- start_label, end_label = label_range.split(',')
39
- prefix = start_label[0,2]
40
- suffix = start_label[11,12]
41
- number = start_label[2,8].to_i
42
- end_number = end_label[2,8].to_i
43
-
44
- while number <= end_number do
45
- use_number = number.to_s
46
-
47
- if use_number.size < 8
48
- use_number = ('0' * (8 - use_number.size)) + use_number
49
- end
50
-
51
- label_array.push prefix + use_number + ' ' + suffix
52
- number += 1
32
+
33
+ attr_reader :receiver_type, :identifier, :id_service, :qt_labels
34
+
35
+ def build_label_array(label_range)
36
+ label_array = []
37
+ start_label, end_label = label_range.split(',')
38
+ prefix = start_label[0,2]
39
+ suffix = start_label[11,12]
40
+ number = start_label[2,8].to_i
41
+ end_number = end_label[2,8].to_i
42
+
43
+ while number <= end_number do
44
+ use_number = number.to_s
45
+
46
+ if use_number.size < 8
47
+ use_number = ('0' * (8 - use_number.size)) + use_number
53
48
  end
54
49
 
55
- label_array
50
+ label_array.push prefix + use_number + ' ' + suffix
51
+ number += 1
56
52
  end
53
+
54
+ label_array
55
+ end
57
56
  end
58
57
  end
58
+
@@ -1,35 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SigepWeb
2
4
  class RequestPlpServices < WebServiceInterfaceApi
3
- def initialize(options = {})
4
- @plp = options[:plp]
5
- @id_plp_client = options[:id_plp_client]
6
- #@post_card = options[:post_card]
7
- @labels = options[:labels]
5
+ def initialize(plp:, id_plp_client:, labels:)
6
+ @plp = plp
7
+ @id_plp_client = id_plp_client
8
+ @labels = labels
9
+
8
10
  super()
9
11
  end
10
12
 
11
13
  def request
12
14
  authenticate = SigepWeb.configuration.authenticate
13
- begin
14
- response = process(:fecha_plp_varios_servicos, {
15
- xml: @plp.to_xml,
16
- idPlpCliente: @id_plp_client,
17
- cartaoPostagem: authenticate.card,
18
- listaEtiquetas: @labels,
19
- usuario: authenticate.user,
20
- senha: authenticate.password
21
- }).to_hash[:fecha_plp_varios_servicos_response][:return].to_s
22
-
23
- {
24
- success: true,
25
- response: response
26
- }
27
- rescue Savon::SOAPFault => msg
28
- {
29
- success: false,
30
- error: msg
31
- }
32
- end
15
+
16
+ response = process(:fecha_plp_varios_servicos,
17
+ xml: plp.to_xml,
18
+ idPlpCliente: id_plp_client,
19
+ cartaoPostagem: authenticate.card,
20
+ listaEtiquetas: labels,
21
+ usuario: authenticate.user,
22
+ senha: authenticate.password
23
+ ).to_hash[:fecha_plp_varios_servicos_response][:return].to_s
24
+
25
+ { success: true, response: response }
26
+ rescue Savon::SOAPFault => e
27
+ { success: false, error: e.message }
33
28
  end
29
+
30
+ private
31
+
32
+ attr_reader :plp, :id_plp_client, :labels
34
33
  end
35
34
  end
35
+