sigep_web 0.2.7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+