oca-epak 1.5.0 → 1.6.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.
- checksums.yaml +4 -4
- data/lib/oca-epak.rb +1 -0
- data/lib/oca-epak/base_client.rb +2 -1
- data/lib/oca-epak/epak/client.rb +14 -9
- data/lib/oca-epak/logger.rb +34 -0
- data/lib/oca-epak/oep/client.rb +25 -2
- data/lib/oca-epak/pickup_data.rb +3 -2
- data/lib/oca-epak/version.rb +1 -1
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28d1b13cc67bd420e4bc7838c2bf4c122a8bf01d
|
4
|
+
data.tar.gz: a92563151e81a485126934f34d86dd85fe827900
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7bd05bde365ba9cef7ab983ed152e8c318add7f5e54e947a4541acbfca8b1fb8ea3cf6a26703db5ccbb4f7544f9573f3d3e75233d12d410606606a9ca5b53ef
|
7
|
+
data.tar.gz: 2b6f084a2e742a46bc853f2bea23c89491f6d9aa78038f239dd57bdb149835b2d6c76553a75f5d45ae4df4470638ec8afa8c76b7f14cc0fc5bd5ab996294244f
|
data/lib/oca-epak.rb
CHANGED
data/lib/oca-epak/base_client.rb
CHANGED
@@ -3,7 +3,8 @@ module Oca
|
|
3
3
|
attr_reader :client
|
4
4
|
attr_accessor :username, :password
|
5
5
|
|
6
|
-
BASE_WSDL_URL =
|
6
|
+
BASE_WSDL_URL = "http://webservice.oca.com.ar".freeze
|
7
|
+
FALSE_STRING = "false".freeze
|
7
8
|
|
8
9
|
def initialize(username, password)
|
9
10
|
@username = username
|
data/lib/oca-epak/epak/client.rb
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
module Oca
|
2
2
|
module Epak
|
3
3
|
class Client < BaseClient
|
4
|
+
ONE_STRING = "1".freeze
|
5
|
+
USER_STRING = "usr".freeze
|
6
|
+
PASSWORD_STRING = "psw".freeze
|
7
|
+
WSDL_URL = "#{BASE_WSDL_URL}/epak_tracking/Oep_TrackEPak.asmx?wsdl".freeze
|
8
|
+
|
4
9
|
def initialize(username, password)
|
5
10
|
super
|
6
|
-
|
7
|
-
@client = Savon.client(
|
11
|
+
@opts = { wsdl: WSDL_URL }.merge(Oca::Logger.options)
|
12
|
+
@client = Savon.client(@opts)
|
8
13
|
end
|
9
14
|
|
10
15
|
# Checks if the user has input valid credentials
|
@@ -12,9 +17,9 @@ module Oca
|
|
12
17
|
# @return [Boolean] Whether the credentials entered are valid or not
|
13
18
|
def check_credentials
|
14
19
|
method = :get_epack_user
|
15
|
-
opts = {
|
20
|
+
opts = { USER_STRING => username, PASSWORD_STRING => password }
|
16
21
|
response = client.call(method, message: opts)
|
17
|
-
parse_results_table(response, method).first[:existe] ==
|
22
|
+
parse_results_table(response, method).first[:existe] == ONE_STRING
|
18
23
|
end
|
19
24
|
|
20
25
|
# Creates a Pickup Order, which lets OCA know you want to make a delivery.
|
@@ -28,12 +33,12 @@ module Oca
|
|
28
33
|
# @option opts [Integer] :pickup_range Range to be used when picking it up, default: 1
|
29
34
|
# @return [Hash, nil]
|
30
35
|
def create_pickup_order(opts = {})
|
31
|
-
confirm_pickup = opts.fetch(:confirm_pickup,
|
32
|
-
days_to_pickup = opts.fetch(:days_to_pickup,
|
33
|
-
pickup_range = opts.fetch(:pickup_range,
|
36
|
+
confirm_pickup = opts.fetch(:confirm_pickup, FALSE_STRING)
|
37
|
+
days_to_pickup = opts.fetch(:days_to_pickup, ONE_STRING)
|
38
|
+
pickup_range = opts.fetch(:pickup_range, ONE_STRING)
|
34
39
|
rendered_xml = opts[:pickup_data].to_xml
|
35
40
|
|
36
|
-
message = {
|
41
|
+
message = { USER_STRING => username, PASSWORD_STRING => password,
|
37
42
|
"xml_Datos" => rendered_xml,
|
38
43
|
"ConfirmarRetiro" => confirm_pickup.to_s,
|
39
44
|
"DiasHastaRetiro" => days_to_pickup,
|
@@ -83,7 +88,7 @@ module Oca
|
|
83
88
|
# @return [Array, nil] Returns all operation codes available for the user
|
84
89
|
def get_operation_codes
|
85
90
|
method = :get_operativas_by_usuario
|
86
|
-
opts = {
|
91
|
+
opts = { USER_STRING => username, PASSWORD_STRING => password }
|
87
92
|
response = client.call(method, message: opts)
|
88
93
|
parse_results_table(response, method)
|
89
94
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Oca
|
2
|
+
class Logger
|
3
|
+
attr_accessor :log, :pretty_print_xml, :log_level
|
4
|
+
|
5
|
+
# Receives a hash with keys `log`, `pretty_print_xml` and `log_level`.
|
6
|
+
# `log_level` can be :info, :debug, :warn, :error or :fatal
|
7
|
+
#
|
8
|
+
# @param opts [Hash]
|
9
|
+
# @option opts [Boolean] :log
|
10
|
+
# @option opts [Boolean] :pretty_print_xml
|
11
|
+
# @option opts [Symbol] :log_level
|
12
|
+
def initialize(opts = {})
|
13
|
+
@log = opts[:log] || false
|
14
|
+
@pretty_print_xml = opts[:pretty_print_xml] || false
|
15
|
+
@log_level = opts[:log_level] || :info
|
16
|
+
end
|
17
|
+
|
18
|
+
# Returns a hash with the logging options for Savon.
|
19
|
+
#
|
20
|
+
# @return [Hash]
|
21
|
+
def logger_options
|
22
|
+
{ log: log, pretty_print_xml: pretty_print_xml, log_level: log_level }
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.options=(opts = {})
|
26
|
+
@logger = Oca::Logger.new(opts)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.options
|
30
|
+
@logger ||= Oca::Logger.new
|
31
|
+
@logger.logger_options
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/oca-epak/oep/client.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
module Oca
|
2
2
|
module Oep
|
3
3
|
class Client < BaseClient
|
4
|
+
WSDL_URL = "#{BASE_WSDL_URL}/oep_tracking/Oep_Track.asmx?wsdl".freeze
|
5
|
+
|
4
6
|
def initialize(username, password)
|
5
7
|
super
|
6
|
-
|
7
|
-
@client = Savon.client(
|
8
|
+
@opts = { wsdl: WSDL_URL }.merge(Oca::Logger.options)
|
9
|
+
@client = Savon.client(@opts)
|
8
10
|
end
|
9
11
|
|
10
12
|
# Returns the HTML for a label
|
@@ -20,6 +22,27 @@ module Oca
|
|
20
22
|
response = client.call(method, message: opts)
|
21
23
|
parse_result(response, method)
|
22
24
|
end
|
25
|
+
|
26
|
+
# Returns the PDF (Base64 encoded) String for a label
|
27
|
+
#
|
28
|
+
# @param [Hash] opts
|
29
|
+
# @option opts [Integer] :id_orden_retiro
|
30
|
+
# @option opts [String] :nro_envio
|
31
|
+
# @option opts [Boolean] :logistica_inversa
|
32
|
+
# @return [String] PDF data Base64 encoded
|
33
|
+
def get_pdf_de_etiquetas_por_orden_or_numero_envio(opts = {})
|
34
|
+
method = :get_pdf_de_etiquetas_por_orden_or_numero_envio
|
35
|
+
opts = {
|
36
|
+
"idOrdenRetiro" => opts[:id_orden_retiro],
|
37
|
+
"nroEnvio" => opts[:nro_envio],
|
38
|
+
"logisticaInversa" => opts.fetch(:logistica_inversa, FALSE_STRING).to_s
|
39
|
+
}
|
40
|
+
response = client.call(method, message: opts)
|
41
|
+
parse_result(response, method)
|
42
|
+
rescue Savon::SOAPFault => error
|
43
|
+
msg = "Oca WS responded with:\n#{error.http.code}\n#{error}"
|
44
|
+
raise Oca::Errors::BadRequest.new(msg)
|
45
|
+
end
|
23
46
|
end
|
24
47
|
end
|
25
48
|
end
|
data/lib/oca-epak/pickup_data.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module Oca
|
2
2
|
module Epak
|
3
3
|
class PickupData
|
4
|
+
PATH_TO_XML = File.expand_path("../retiro.xml.erb", __FILE__).freeze
|
5
|
+
|
4
6
|
attr_accessor :account_number, :pickup, :shipments
|
5
7
|
|
6
8
|
# Creates a Pickup Data object for creating a pickup order in OCA.
|
@@ -22,8 +24,7 @@ module Oca
|
|
22
24
|
private
|
23
25
|
|
24
26
|
def or_template
|
25
|
-
|
26
|
-
ERB.new(File.read(path_to_xml), nil, "-")
|
27
|
+
ERB.new(File.read(PATH_TO_XML), nil, "-")
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
data/lib/oca-epak/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oca-epak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mauro Otonelli
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-07-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: savon
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '3.2'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.39.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.39.0
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: rake
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +122,7 @@ files:
|
|
108
122
|
- lib/oca-epak/epak/client.rb
|
109
123
|
- lib/oca-epak/errors/bad_request.rb
|
110
124
|
- lib/oca-epak/errors/generic_error.rb
|
125
|
+
- lib/oca-epak/logger.rb
|
111
126
|
- lib/oca-epak/oep/client.rb
|
112
127
|
- lib/oca-epak/pickup_data.rb
|
113
128
|
- lib/oca-epak/retiro.xml.erb
|
@@ -132,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
147
|
version: '0'
|
133
148
|
requirements: []
|
134
149
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
150
|
+
rubygems_version: 2.4.6
|
136
151
|
signing_key:
|
137
152
|
specification_version: 4
|
138
153
|
summary: OCA E-Pak
|