module Deliveries::Couriers::Ups
Constants
- COURIER_ID
- Config
Public Instance Methods
create_pickup(sender:, receiver:, parcels:, reference_code:, pickup_date: nil, language: nil, **)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 71 def create_pickup(sender:, receiver:, parcels:, reference_code:, pickup_date: nil, language: nil, **) tracking_code, label = Shipments::Create.new( shipper: receiver, consignee: sender, parcels: parcels, reference_code: reference_code, type: :return, language: language ).execute.values_at(:tracking_code, :label) Deliveries::Pickup.new( courier_id: COURIER_ID, sender: sender, receiver: receiver, parcels: parcels, reference_code: reference_code, tracking_code: tracking_code, pickup_date: pickup_date, label: Label.new(raw: label) ) end
create_shipment(sender:, receiver:, parcels:, reference_code:, collection_point:, shipment_date: nil, language: nil, **)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 48 def create_shipment(sender:, receiver:, parcels:, reference_code:, collection_point:, shipment_date: nil, language: nil, **) tracking_code, label = Shipments::Create.new( shipper: sender, consignee: receiver, parcels: parcels, reference_code: reference_code, type: :forward, collection_point: collection_point, language: language ).execute.values_at(:tracking_code, :label) Deliveries::Shipment.new( courier_id: COURIER_ID, sender: sender, receiver: receiver, parcels: parcels, reference_code: reference_code, tracking_code: tracking_code, shipment_date: shipment_date, label: Label.new(raw: label) ) end
get_collection_point(global_point_id:)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 25 def get_collection_point(global_point_id:) global_point = CollectionPoint.parse_global_point_id(global_point_id: global_point_id) points = CollectionPoints::Search.new( country: global_point.country, point_id: global_point.point_id ).execute raise Error, 'No collection point found by that point ID' if points.empty? CollectionPoint.new(**points.first) end
get_collection_points(country:, postcode:)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 37 def get_collection_points(country:, postcode:) points = CollectionPoints::Search.new( country: country, postcode: postcode ).execute points.map do |arguments| CollectionPoint.new(**arguments) end end
get_label(tracking_code:, **)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 93 def get_label(tracking_code:, **) arguments = Labels::Generate.new(tracking_code: tracking_code).execute Label.new(**arguments) end
get_labels(tracking_codes:, **)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 98 def get_labels(tracking_codes:, **) labels = Deliveries::Labels.new tracking_codes.each do |tracking_code| labels << get_label(tracking_code: tracking_code) end labels end
pickup_info(tracking_code:, language: nil)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 117 def pickup_info(tracking_code:, language: nil) shipment_info(tracking_code: tracking_code, language: language) end
shipment_info(tracking_code:, language: nil)
click to toggle source
# File lib/deliveries/couriers/ups.rb, line 108 def shipment_info(tracking_code:, language: nil) checkpoints = Shipments::Trace.new(tracking_code: tracking_code, language: language).execute.map do |arguments| Checkpoint.new(**arguments) end TrackingInfo.new(courier_id: COURIER_ID, tracking_code: tracking_code, checkpoints: checkpoints, status: checkpoints.last&.status) end