Class: EnviopackApi::Client
- Inherits:
-
Object
- Object
- EnviopackApi::Client
- Defined in:
- lib/enviopack_api/client.rb
Instance Method Summary collapse
-
#delete(params) ⇒ Object
DELETE resource www.enviopack.com/documentacion/ req: params (comma separated list of IDs) Client.delete(params).
-
#get(resource, options = nil) ⇒ Object
GET any available resource with or withoud ID ex.: get(“localidades/ID”).
-
#get_quote(options = {}) ⇒ Object
Obtener el costo que abona el VENDEDOR por el envío www.enviopack.com/documentacion/cotiza-un-envio Client.get_quote(provincia: “C”, codigo_postal: 1407, peso: 0.5, etc: etc).
-
#get_resource(resource, options = nil) ⇒ Object
GET /resource_name.
-
#initialize(access_token = nil) ⇒ Client
constructor
A new instance of Client.
-
#post(resource, params) ⇒ Object
POST resource www.enviopack.com/documentacion/realiza-un-envio req: resource, params Client.post(“pedidos”, params).
-
#print_batch(ids) ⇒ Object
Print batch tickets Pass Array of ids: ids = [1,2…9].
-
#print_single(id, output = "pdf") ⇒ Object
Print shipping ticket ID = ticket ID Output: PDF or JPG.
-
#validate_zipcode(province_id, zipcode) ⇒ Object
GET /provincia/ID/validar-codigo-postal returns param ‘valido’ true or false.
Constructor Details
#initialize(access_token = nil) ⇒ Client
Returns a new instance of Client.
3 4 5 6 |
# File 'lib/enviopack_api/client.rb', line 3 def initialize(access_token = nil) @access_token = access_token || ENV["ENVIPACK_API_TOKEN"] @base_uri = "https://api.enviopack.com" end |
Instance Method Details
#delete(params) ⇒ Object
DELETE resource www.enviopack.com/documentacion/ req: params (comma separated list of IDs) Client.delete(params)
116 117 118 119 120 121 |
# File 'lib/enviopack_api/client.rb', line 116 def delete(params) url = "/pedidos/descartar-envios" to_query = "ids=#{params}" delete_request(url, to_query) end |
#get(resource, options = nil) ⇒ Object
GET any available resource with or withoud ID ex.: get(“localidades/ID”)
10 11 12 13 14 |
# File 'lib/enviopack_api/client.rb', line 10 def get(resource, = nil) params = url = "/#{resource}" get_response(url, params) end |
#get_quote(options = {}) ⇒ Object
Obtener el costo que abona el VENDEDOR por el envío www.enviopack.com/documentacion/cotiza-un-envio Client.get_quote(provincia: “C”, codigo_postal: 1407, peso: 0.5, etc: etc)
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/enviopack_api/client.rb', line 55 def get_quote( = {}) ################### Optionals # will be removed from code # Ej: 20x2x10,20x2x10 indica que se envian 2 paquetes y cada uno tiene 20 cm de alto x 2 cm de ancho x 10 cm de largo. paquetes = [:paquetes] correo = [:correo] # ID, e.: "oca" # For, :despacho & :modalidad # - D: retiro por domicilio # - S: despacho desde sucursa despacho = [:despacho] || "D" modalidad = [:modalidad] || "D" # - N: para el servicio estándar # - P: para el servicio prioritario # - X: para el servicio express # - R: para el servicio de devoluciones servicio = [:servicio] || "N" # Shipping dispatch address # Client.get('mis-direcciones') direccion_envio = [:direccion_envio] # - valor: para ordenar por precio (Default) # - horas_entrega: para ordenar por velocidad de envío # - cumplimiento: para ordenar por porcentaje de cumplimiento en envios de similares caracteristicas # - anomalos: para ordenar por porcentaje de anómalos en envios de similares caracteristicas orden_columna = [:orden_columna] # - asc: para orden ascendente (Default) # - desc: para orden descendente orden_sentido = [:orden_sentido] ################### Required params provincia = [:provincia] || "C" codigo_postal = [:codigo_postal] || "" peso = [:peso] || 1.0 url = "/cotizar/costo" query = .to_query get_response(url, query) end |
#get_resource(resource, options = nil) ⇒ Object
GET /resource_name
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/enviopack_api/client.rb', line 17 def get_resource(resource, = nil) # Prevent resource to be miss spelled case resource when "correos", "couriers" resource_name = "correos" when "sucursales" resource_name = "sucursales" when "provincias", "states" resource_name = "provincias" when "localidades", "barrios" resource_name = "localidades" when "paquetes", "packaging", "boxes", "embalaje" resource_name = "tipos-de-paquetes" when "mis-direcciones", "mi-dreccion", "addresses", "remitiente" resource_name = "mis-direcciones" when "direcciones-de-envio", "direcciones", "destination" resource_name = "direcciones-de-envio" else resource_name = resource end # build request url = "/#{resource}" get_response(url, nil) end |
#post(resource, params) ⇒ Object
POST resource www.enviopack.com/documentacion/realiza-un-envio req: resource, params Client.post(“pedidos”, params)
102 103 104 105 106 107 108 109 110 |
# File 'lib/enviopack_api/client.rb', line 102 def post(resource, params) case resource when "pedidos", "place_order", "new_order" then url = "/pedidos" when "envios", "shipping" then url = "/envios" else url = "/#{resource}" end post_request(url, params) end |
#print_batch(ids) ⇒ Object
Print batch tickets Pass Array of ids: ids = [1,2…9]
139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/enviopack_api/client.rb', line 139 def print_batch(ids) timenow = Time.current.strftime("%Y%m%d_-_%H%M") ids_string = ids.to_csv.delete("\n") resource_url = "#{@base_uri}/envios/etiquetas?access_token=#{@access_token}&ids=#{ids_string}" begin response = RestClient.get resource_url send_data(response, :filename => "etiquetas_-_#{timenow}.pdf", :disposition => "attachment", :type => "application/pdf") rescue e return JSON.parse(e.response, object_class: OpenStruct) end end |
#print_single(id, output = "pdf") ⇒ Object
Print shipping ticket ID = ticket ID Output: PDF or JPG
126 127 128 129 130 131 132 133 134 135 |
# File 'lib/enviopack_api/client.rb', line 126 def print_single(id, output = "pdf") timenow = Time.current.strftime("%Y%m%d_-_%H%M") resource_url = "#{@base_uri}/envios/#{id}/etiqueta?access_token=#{@access_token}&formato=#{output}" begin response = RestClient.get resource_url send_data(response, :filename => "etiqueta_-_#{timenow}.pdf", :disposition => "attachment", :type => "application/pdf") rescue e return JSON.parse(e.response, object_class: OpenStruct) end end |
#validate_zipcode(province_id, zipcode) ⇒ Object
GET /provincia/ID/validar-codigo-postal returns param ‘valido’ true or false
45 46 47 48 49 50 |
# File 'lib/enviopack_api/client.rb', line 45 def validate_zipcode(province_id, zipcode) zipcode = zipcode.to_i url = "/provincia/#{province_id}/validar-codigo-postal" query = "codigo_postal=#{zipcode}" get_response(url, query) end |