correios_gem 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/correios_gem.gemspec +29 -0
  3. data/lib/SRO/requests/track_shippings.rb +31 -45
  4. data/lib/{credentials.rb → auxiliars/credentials.rb} +0 -0
  5. data/lib/auxiliars/environments.rb +94 -0
  6. data/lib/auxiliars/exception.rb +5 -0
  7. data/lib/auxiliars/helper.rb +404 -0
  8. data/lib/correios_gem.rb +22 -24
  9. data/lib/pricefier/requests/calculate_deadline.rb +27 -45
  10. data/lib/pricefier/requests/calculate_price.rb +34 -53
  11. data/lib/pricefier/requests/calculate_price_deadline.rb +49 -63
  12. data/lib/pricefier/requests/calculate_price_fac.rb +21 -46
  13. data/lib/pricefier/requests/list_services.rb +26 -42
  14. data/lib/reverse_logistics/requests/calculate_ticket_number_check_digit.rb +10 -21
  15. data/lib/reverse_logistics/requests/cancel_shipping.rb +13 -23
  16. data/lib/reverse_logistics/requests/create_shippings.rb +22 -36
  17. data/lib/reverse_logistics/requests/create_shippings_with_collection.rb +17 -33
  18. data/lib/reverse_logistics/requests/request_ticket_numbers.rb +13 -35
  19. data/lib/reverse_logistics/requests/track_shipping.rb +18 -39
  20. data/lib/reverse_logistics/requests/track_shippings_by_date.rb +19 -45
  21. data/lib/sigep/auxiliars/shipping_xml.rb +100 -0
  22. data/lib/sigep/requests/calculate_label_number_check_digit.rb +13 -27
  23. data/lib/sigep/requests/cancel_shipping.rb +12 -25
  24. data/lib/sigep/requests/check_card_status.rb +11 -27
  25. data/lib/sigep/requests/check_service_availability.rb +12 -39
  26. data/lib/sigep/requests/create_shippings.rb +20 -24
  27. data/lib/sigep/requests/request_label_numbers.rb +11 -17
  28. data/lib/sigep/requests/request_shippings_xml.rb +14 -53
  29. data/lib/sigep/requests/search_available_additional_services.rb +12 -20
  30. data/lib/sigep/requests/search_customer.rb +15 -37
  31. data/lib/sigep/requests/search_zip_code.rb +11 -16
  32. data/lib/sigep/requests/track_shippings.rb +19 -51
  33. metadata +22 -19
  34. data/lib/SRO/client.rb +0 -25
  35. data/lib/SRO/helper.rb +0 -118
  36. data/lib/SRO/requests/track_shippings_list.rb +0 -144
  37. data/lib/correios_exception.rb +0 -11
  38. data/lib/pricefier/client.rb +0 -20
  39. data/lib/pricefier/helper.rb +0 -72
  40. data/lib/pricefier/requests/calculate_deadline_with_date.rb +0 -102
  41. data/lib/pricefier/requests/calculate_deadline_with_restrictions.rb +0 -102
  42. data/lib/pricefier/requests/calculate_price_deadline_with_date.rb +0 -142
  43. data/lib/pricefier/requests/calculate_price_deadline_with_restrictions.rb +0 -142
  44. data/lib/pricefier/requests/calculate_price_with_date.rb +0 -125
  45. data/lib/pricefier/requests/list_services_star.rb +0 -87
  46. data/lib/reverse_logistics/client.rb +0 -34
  47. data/lib/reverse_logistics/helper.rb +0 -95
  48. data/lib/sigep/client.rb +0 -29
  49. data/lib/sigep/helper.rb +0 -234
@@ -1,16 +1,6 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Sigep
10
- class SearchAvailableAdditionalServices < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class SearchAvailableAdditionalServices < Helper
14
4
  def initialize(data = {})
15
5
  @show_request = data[:show_request]
16
6
  super()
@@ -19,11 +9,15 @@ module Correios
19
9
  def request
20
10
  puts xml if @show_request == true
21
11
  begin
22
- format_response(CLIENT.client.call(:busca_servicos_adicionais_ativos,
23
- soap_action: '',
24
- xml: xml).to_hash)
12
+ format_response(Sigep.client.call(
13
+ :busca_servicos_adicionais_ativos,
14
+ soap_action: '',
15
+ xml: xml
16
+ ).to_hash)
25
17
  rescue Savon::SOAPFault => error
26
- generate_exception(error)
18
+ generate_soap_fault_exception(error)
19
+ rescue Savon::HTTPError => error
20
+ generate_http_exception(error.http.code)
27
21
  end
28
22
  end
29
23
 
@@ -31,7 +25,7 @@ module Correios
31
25
 
32
26
  def xml
33
27
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
34
- xml['soap'].Envelope(HELPER.namespaces) do
28
+ xml['soap'].Envelope(Sigep.namespaces) do
35
29
  xml['soap'].Body do
36
30
  xml['ns1'].buscaServicosAdicionaisAtivos
37
31
  end
@@ -47,15 +41,13 @@ module Correios
47
41
  end
48
42
 
49
43
  def format_additional_services(additional_services)
50
- formatted_additional_services = []
51
- additional_services.each do |additional_service|
52
- formatted_additional_services << {
44
+ additional_services.map do |additional_service|
45
+ {
53
46
  code: additional_service[:codigo],
54
47
  description: additional_service[:descricao].encode(Encoding::UTF_8),
55
48
  initials: additional_service[:sigla]
56
49
  }
57
50
  end
58
- formatted_additional_services
59
51
  end
60
52
  end
61
53
  end
@@ -1,19 +1,8 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Sigep
10
- class SearchCustomer < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class SearchCustomer < Helper
14
4
  def initialize(data = {})
15
5
  @credentials = Correios.credentials
16
-
17
6
  @show_request = data[:show_request]
18
7
  super()
19
8
  end
@@ -21,11 +10,15 @@ module Correios
21
10
  def request
22
11
  puts xml if @show_request == true
23
12
  begin
24
- format_response(CLIENT.client.call(:busca_cliente,
25
- soap_action: '',
26
- xml: xml).to_hash)
13
+ format_response(Sigep.client.call(
14
+ :busca_cliente,
15
+ soap_action: '',
16
+ xml: xml
17
+ ).to_hash)
27
18
  rescue Savon::SOAPFault => error
28
- generate_exception(error)
19
+ generate_soap_fault_exception(error)
20
+ rescue Savon::HTTPError => error
21
+ generate_http_exception(error.http.code)
29
22
  end
30
23
  end
31
24
 
@@ -33,7 +26,7 @@ module Correios
33
26
 
34
27
  def xml
35
28
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
36
- xml['soap'].Envelope(HELPER.namespaces) do
29
+ xml['soap'].Envelope(Sigep.namespaces) do
37
30
  xml['soap'].Body do
38
31
  xml['ns1'].buscaCliente do
39
32
  parent_namespace = xml.parent.namespace
@@ -57,15 +50,10 @@ module Correios
57
50
  contracts = response[:contratos]
58
51
  contracts = [contracts] if contracts.is_a?(Hash)
59
52
 
60
- formatted_contracts = []
61
- contracts.each do |contract|
62
- formatted_contracts << format_contract(contract)
63
- end
64
-
65
53
  {
66
54
  status_code: response[:status_codigo].strip,
67
55
  status_description: response[:descricao_status_cliente].strip,
68
- contracts: formatted_contracts
56
+ contracts: contracts.map {|c| format_contract(c)}
69
57
  }
70
58
  end
71
59
 
@@ -73,17 +61,12 @@ module Correios
73
61
  cards = contract[:cartoes_postagem]
74
62
  cards = [cards] if cards.is_a?(Hash)
75
63
 
76
- formatted_cards = []
77
- cards.each do |card|
78
- formatted_cards << format_card(card)
79
- end
80
-
81
64
  {
82
65
  board_id: contract[:codigo_diretoria].strip,
83
66
  board_description: contract[:descricao_diretoria_regional].strip,
84
67
  validity_begin: contract[:data_vigencia_inicio],
85
68
  validity_end: contract[:data_vigencia_fim],
86
- cards: formatted_cards
69
+ cards: cards.map {|c| format_card(c)}
87
70
  }
88
71
  end
89
72
 
@@ -91,15 +74,10 @@ module Correios
91
74
  services = card[:servicos]
92
75
  services = [services] if services.is_a?(Hash)
93
76
 
94
- formatted_services = []
95
- services.each do |service|
96
- formatted_services << format_service(service)
97
- end
98
-
99
77
  {
100
78
  validity_begin: card[:data_vigencia_inicio],
101
79
  validity_end: card[:data_vigencia_fim],
102
- services: formatted_services
80
+ services: services.map {|s| format_service(s)}
103
81
  }
104
82
  end
105
83
 
@@ -115,10 +93,10 @@ module Correios
115
93
  conditions: {
116
94
  dimensions_required: sigep_service[:exige_dimensoes],
117
95
  addtional_price_required: sigep_service[:exige_valor_cobrar],
118
- payment_on_delivery: HELPER.convert_string_to_bool(
96
+ payment_on_delivery: string_to_bool(
119
97
  sigep_service[:pagamento_entrega]
120
98
  ),
121
- grouped_shipment: HELPER.convert_string_to_bool(
99
+ grouped_shipment: string_to_bool(
122
100
  sigep_service[:remessa_agrupada]
123
101
  )
124
102
  }
@@ -1,18 +1,9 @@
1
- require 'savon'
2
- require 'nokogiri'
3
-
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
1
  module Correios
9
2
  module Sigep
10
- class SearchZipCode < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
3
+ class SearchZipCode < Helper
14
4
  def initialize(data = {})
15
5
  @show_request = data[:show_request]
6
+
16
7
  @zip_code = data[:zip_code]
17
8
  super()
18
9
  end
@@ -20,11 +11,15 @@ module Correios
20
11
  def request
21
12
  puts xml if @show_request == true
22
13
  begin
23
- format_response(CLIENT.client.call(:consulta_cep,
24
- soap_action: '',
25
- xml: xml).to_hash)
14
+ format_response(Sigep.client.call(
15
+ :consulta_cep,
16
+ soap_action: '',
17
+ xml: xml
18
+ ).to_hash)
26
19
  rescue Savon::SOAPFault => error
27
- generate_exception(error)
20
+ generate_soap_fault_exception(error)
21
+ rescue Savon::HTTPError => error
22
+ generate_http_exception(error.http.code)
28
23
  end
29
24
  end
30
25
 
@@ -32,7 +27,7 @@ module Correios
32
27
 
33
28
  def xml
34
29
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
35
- xml['soap'].Envelope(HELPER.namespaces) do
30
+ xml['soap'].Envelope(Sigep.namespaces) do
36
31
  xml['soap'].Body do
37
32
  xml['ns1'].consultaCEP do
38
33
  parent_namespace = xml.parent.namespace
@@ -1,20 +1,12 @@
1
- require 'nokogiri'
2
1
  require 'active_support/core_ext/hash'
3
2
 
4
- require_relative '../client'
5
- require_relative '../helper'
6
- require_relative '../../correios_exception.rb'
7
-
8
3
  module Correios
9
4
  module Sigep
10
- class TrackShippings < CorreiosException
11
- HELPER = Helper.new
12
- CLIENT = Client.new
13
-
5
+ class TrackShippings < Helper
14
6
  def initialize(data = {})
15
7
  @credentials = Correios.credentials
16
-
17
8
  @show_request = data[:show_request]
9
+
18
10
  @label_numbers = data[:label_numbers]
19
11
  @query_type = data[:query_type]
20
12
  @result_type = data[:result_type]
@@ -24,11 +16,15 @@ module Correios
24
16
  def request
25
17
  puts xml if @show_request == true
26
18
  begin
27
- format_response(CLIENT.client.call(:consulta_sro,
28
- soap_action: '',
29
- xml: xml).to_hash)
19
+ format_response(Sigep.client.call(
20
+ :consulta_sro,
21
+ soap_action: '',
22
+ xml: xml
23
+ ).to_hash)
30
24
  rescue Savon::SOAPFault => error
31
- generate_exception(error)
25
+ generate_soap_fault_exception(error)
26
+ rescue Savon::HTTPError => error
27
+ generate_http_exception(error.http.code)
32
28
  end
33
29
  end
34
30
 
@@ -36,7 +32,7 @@ module Correios
36
32
 
37
33
  def xml
38
34
  Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
39
- xml['soap'].Envelope(HELPER.namespaces) do
35
+ xml['soap'].Envelope(Sigep.namespaces) do
40
36
  xml['soap'].Body do
41
37
  xml['ns1'].consultaSRO do
42
38
  parent_namespace = xml.parent.namespace
@@ -45,8 +41,8 @@ module Correios
45
41
  @label_numbers.each do |label_number|
46
42
  xml.listaObjetos label_number
47
43
  end
48
- xml.tipoConsulta query_type(@query_type)
49
- xml.tipoResultado result_type(@result_type)
44
+ xml.tipoConsulta tracking_query_type(@query_type)
45
+ xml.tipoResultado tracking_result_type(@result_type)
50
46
  xml.usuarioSro @credentials.sro_user
51
47
  xml.senhaSro @credentials.sro_password
52
48
 
@@ -64,23 +60,13 @@ module Correios
64
60
  objects = response['rastro']['objeto']
65
61
  objects = [objects] if objects.is_a?(Hash)
66
62
 
67
- formatted_objects = []
68
- objects.each do |object|
69
- formatted_objects << format_object(object)
70
- end
71
-
72
- { tracking: formatted_objects }
63
+ { tracking: objects.map {|o| format_object(o)} }
73
64
  end
74
65
 
75
66
  def format_object(object)
76
67
  events = object['evento']
77
68
  events = [events] if events.is_a?(Hash)
78
69
 
79
- formatted_events = []
80
- events.each do |event|
81
- formatted_events << format_event(event)
82
- end
83
-
84
70
  {
85
71
  label: {
86
72
  number: object['numero'],
@@ -88,16 +74,16 @@ module Correios
88
74
  name: object['nome'],
89
75
  category: object['categoria']
90
76
  },
91
- events: formatted_events
77
+ events: events.map {|e| format_event(e)}
92
78
  }
93
79
  end
94
80
 
95
81
  def format_event(event)
96
82
  {
97
- movement: HELPER.tracking_event_status(event),
83
+ movement: inverse_tracking_event_status(event),
98
84
  type: event['tipo'],
99
85
  status: event['status'],
100
- time: HELPER.convert_string_to_date(event['data'], event['hora']),
86
+ time: string_to_time_no_second(event['data'], event['hora']),
101
87
  description: event['descricao'],
102
88
  detail: event['detalhe'],
103
89
  city: event['cidade'],
@@ -105,7 +91,7 @@ module Correios
105
91
  destination: format_destination(event['destino']),
106
92
  site: {
107
93
  description: event['local'],
108
- code: event['codigo']
94
+ zip_code: event['codigo']
109
95
  }
110
96
  }
111
97
  end
@@ -118,28 +104,10 @@ module Correios
118
104
  state: destination['uf'],
119
105
  site: {
120
106
  description: destination['local'],
121
- code: destination['codigo']
107
+ zip_code: destination['codigo']
122
108
  }
123
109
  }
124
110
  end
125
-
126
- def query_type(type)
127
- case type
128
- when :list
129
- 'L'
130
- when :range
131
- 'F'
132
- end
133
- end
134
-
135
- def result_type(type)
136
- case type
137
- when :last_event
138
- 'U'
139
- when :all_events
140
- 'T'
141
- end
142
- end
143
111
  end
144
112
  end
145
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: correios_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arthur Soares
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-14 00:00:00.000000000 Z
11
+ date: 2019-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -70,6 +70,20 @@ dependencies:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 2.12.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.0'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '3.0'
73
87
  description: |-
74
88
  Integracao com as APIs Sigep, Logistica Reversa,
75
89
  Precificador (frete) e SRO, utilizando objetos Ruby para
@@ -80,28 +94,18 @@ executables: []
80
94
  extensions: []
81
95
  extra_rdoc_files: []
82
96
  files:
83
- - lib/SRO/client.rb
84
- - lib/SRO/helper.rb
97
+ - correios_gem.gemspec
85
98
  - lib/SRO/requests/track_shippings.rb
86
- - lib/SRO/requests/track_shippings_list.rb
87
- - lib/correios_exception.rb
99
+ - lib/auxiliars/credentials.rb
100
+ - lib/auxiliars/environments.rb
101
+ - lib/auxiliars/exception.rb
102
+ - lib/auxiliars/helper.rb
88
103
  - lib/correios_gem.rb
89
- - lib/credentials.rb
90
- - lib/pricefier/client.rb
91
- - lib/pricefier/helper.rb
92
104
  - lib/pricefier/requests/calculate_deadline.rb
93
- - lib/pricefier/requests/calculate_deadline_with_date.rb
94
- - lib/pricefier/requests/calculate_deadline_with_restrictions.rb
95
105
  - lib/pricefier/requests/calculate_price.rb
96
106
  - lib/pricefier/requests/calculate_price_deadline.rb
97
- - lib/pricefier/requests/calculate_price_deadline_with_date.rb
98
- - lib/pricefier/requests/calculate_price_deadline_with_restrictions.rb
99
107
  - lib/pricefier/requests/calculate_price_fac.rb
100
- - lib/pricefier/requests/calculate_price_with_date.rb
101
108
  - lib/pricefier/requests/list_services.rb
102
- - lib/pricefier/requests/list_services_star.rb
103
- - lib/reverse_logistics/client.rb
104
- - lib/reverse_logistics/helper.rb
105
109
  - lib/reverse_logistics/requests/calculate_ticket_number_check_digit.rb
106
110
  - lib/reverse_logistics/requests/cancel_shipping.rb
107
111
  - lib/reverse_logistics/requests/create_shippings.rb
@@ -109,8 +113,7 @@ files:
109
113
  - lib/reverse_logistics/requests/request_ticket_numbers.rb
110
114
  - lib/reverse_logistics/requests/track_shipping.rb
111
115
  - lib/reverse_logistics/requests/track_shippings_by_date.rb
112
- - lib/sigep/client.rb
113
- - lib/sigep/helper.rb
116
+ - lib/sigep/auxiliars/shipping_xml.rb
114
117
  - lib/sigep/requests/calculate_label_number_check_digit.rb
115
118
  - lib/sigep/requests/cancel_shipping.rb
116
119
  - lib/sigep/requests/check_card_status.rb