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.
- checksums.yaml +4 -4
- data/correios_gem.gemspec +29 -0
- data/lib/SRO/requests/track_shippings.rb +31 -45
- data/lib/{credentials.rb → auxiliars/credentials.rb} +0 -0
- data/lib/auxiliars/environments.rb +94 -0
- data/lib/auxiliars/exception.rb +5 -0
- data/lib/auxiliars/helper.rb +404 -0
- data/lib/correios_gem.rb +22 -24
- data/lib/pricefier/requests/calculate_deadline.rb +27 -45
- data/lib/pricefier/requests/calculate_price.rb +34 -53
- data/lib/pricefier/requests/calculate_price_deadline.rb +49 -63
- data/lib/pricefier/requests/calculate_price_fac.rb +21 -46
- data/lib/pricefier/requests/list_services.rb +26 -42
- data/lib/reverse_logistics/requests/calculate_ticket_number_check_digit.rb +10 -21
- data/lib/reverse_logistics/requests/cancel_shipping.rb +13 -23
- data/lib/reverse_logistics/requests/create_shippings.rb +22 -36
- data/lib/reverse_logistics/requests/create_shippings_with_collection.rb +17 -33
- data/lib/reverse_logistics/requests/request_ticket_numbers.rb +13 -35
- data/lib/reverse_logistics/requests/track_shipping.rb +18 -39
- data/lib/reverse_logistics/requests/track_shippings_by_date.rb +19 -45
- data/lib/sigep/auxiliars/shipping_xml.rb +100 -0
- data/lib/sigep/requests/calculate_label_number_check_digit.rb +13 -27
- data/lib/sigep/requests/cancel_shipping.rb +12 -25
- data/lib/sigep/requests/check_card_status.rb +11 -27
- data/lib/sigep/requests/check_service_availability.rb +12 -39
- data/lib/sigep/requests/create_shippings.rb +20 -24
- data/lib/sigep/requests/request_label_numbers.rb +11 -17
- data/lib/sigep/requests/request_shippings_xml.rb +14 -53
- data/lib/sigep/requests/search_available_additional_services.rb +12 -20
- data/lib/sigep/requests/search_customer.rb +15 -37
- data/lib/sigep/requests/search_zip_code.rb +11 -16
- data/lib/sigep/requests/track_shippings.rb +19 -51
- metadata +22 -19
- data/lib/SRO/client.rb +0 -25
- data/lib/SRO/helper.rb +0 -118
- data/lib/SRO/requests/track_shippings_list.rb +0 -144
- data/lib/correios_exception.rb +0 -11
- data/lib/pricefier/client.rb +0 -20
- data/lib/pricefier/helper.rb +0 -72
- data/lib/pricefier/requests/calculate_deadline_with_date.rb +0 -102
- data/lib/pricefier/requests/calculate_deadline_with_restrictions.rb +0 -102
- data/lib/pricefier/requests/calculate_price_deadline_with_date.rb +0 -142
- data/lib/pricefier/requests/calculate_price_deadline_with_restrictions.rb +0 -142
- data/lib/pricefier/requests/calculate_price_with_date.rb +0 -125
- data/lib/pricefier/requests/list_services_star.rb +0 -87
- data/lib/reverse_logistics/client.rb +0 -34
- data/lib/reverse_logistics/helper.rb +0 -95
- data/lib/sigep/client.rb +0 -29
- 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 <
|
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(
|
23
|
-
|
24
|
-
|
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
|
-
|
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(
|
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
|
-
|
51
|
-
|
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 <
|
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(
|
25
|
-
|
26
|
-
|
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
|
-
|
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(
|
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:
|
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:
|
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:
|
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:
|
96
|
+
payment_on_delivery: string_to_bool(
|
119
97
|
sigep_service[:pagamento_entrega]
|
120
98
|
),
|
121
|
-
grouped_shipment:
|
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 <
|
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(
|
24
|
-
|
25
|
-
|
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
|
-
|
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(
|
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 <
|
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(
|
28
|
-
|
29
|
-
|
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
|
-
|
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(
|
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
|
49
|
-
xml.tipoResultado
|
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
|
-
|
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:
|
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:
|
83
|
+
movement: inverse_tracking_event_status(event),
|
98
84
|
type: event['tipo'],
|
99
85
|
status: event['status'],
|
100
|
-
time:
|
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
|
-
|
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
|
-
|
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.
|
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-
|
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
|
-
-
|
84
|
-
- lib/SRO/helper.rb
|
97
|
+
- correios_gem.gemspec
|
85
98
|
- lib/SRO/requests/track_shippings.rb
|
86
|
-
- lib/
|
87
|
-
- lib/
|
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/
|
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
|