module Deliveries::Couriers::CorreosExpress
Constants
- COLLECTION_POINTS_ENDPOINT_LIVE
- COLLECTION_POINTS_ENDPOINT_TEST
- CUTOFF_TIME_ENDPOINT_LIVE
- Config
- LABELS_ENDPOINT_LIVE
- LABELS_ENDPOINT_TEST
- PICKUPS_ENDPOINT_LIVE
- PICKUPS_ENDPOINT_TEST
- SHIPMENTS_ENDPOINT_LIVE
- SHIPMENTS_ENDPOINT_TEST
- TRACKING_INFO_ENDPOINT_LIVE
- TRACKING_INFO_ENDPOINT_TEST
Public Instance Methods
create_pickup(sender:, receiver:, parcels:, reference_code:, pickup_date: nil, remarks: nil, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 127 def create_pickup(sender:, receiver:, parcels:, reference_code:, pickup_date: nil, remarks: nil, **) time_interval = nil begin params = Pickups::Create::FormatParams.new( sender: sender.courierize(:correos_express), receiver: receiver.courierize(:correos_express), parcels: parcels, reference_code: reference_code, pickup_date: pickup_date, remarks: remarks, time_interval: time_interval ).execute pickup_number = Pickups::Create.new(params: params).execute rescue InvalidTimeIntervalError => e raise e if time_interval raise e unless (cutoff_time = e.message[/\b(\d+):\d{2}\z/, 1]) time_interval = 9..cutoff_time.to_i retry end Deliveries::Pickup.new( courier_id: 'correos_express', sender: sender, receiver: receiver, parcels: parcels, reference_code: reference_code, tracking_code: pickup_number, pickup_date: pickup_date ) end
create_shipment(sender:, receiver:, parcels:, reference_code:, collection_point: nil, shipment_date: nil, remarks: nil, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 115 def create_shipment(sender:, receiver:, parcels:, reference_code:, collection_point: nil, shipment_date: nil, remarks: nil, **) Shipments::Create.new( sender: sender, receiver: receiver, collection_point: collection_point, shipment_date: shipment_date, parcels: parcels, reference_code: reference_code, remarks: remarks ).execute end
get_collection_point(global_point_id:)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 60 def get_collection_point(global_point_id:) global_point = Deliveries::CollectionPoint.parse_global_point_id(global_point_id: global_point_id) collection_points = get_collection_points(postcode: global_point.postcode) collection_point = collection_points.select { |col| col.point_id == global_point.point_id }.first if collection_point.blank? raise Deliveries::APIError.new( "Collection Point not found - #{global_point.point_id}", 1 ) end collection_point end
get_collection_points(postcode:, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 46 def get_collection_points(postcode:, **) raise Deliveries::APIError, 'Postcode cannot be null' if postcode.blank? collection_points = [] points = CollectionPoints::Search.new(postcode: postcode).execute points.each do |point| collection_point_params = CollectionPoints::Search::FormatResponse.new(response: point).execute collection_points << Deliveries::CollectionPoint.new(**collection_point_params) end collection_points end
get_label(tracking_code:, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 95 def get_label(tracking_code:, **) pdf = Labels::Generate.new( tracking_codes: tracking_code ).execute.first Deliveries::Label.new(raw: pdf) end
get_labels(tracking_codes:, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 103 def get_labels(tracking_codes:, **) labels = Deliveries::Labels.new Labels::Generate.new( tracking_codes: tracking_codes ).execute.each do |pdf| labels << pdf end labels end
pickup_info(tracking_code:, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 85 def pickup_info(tracking_code:, **) response = Pickups::Trace.new( tracking_code: tracking_code ).execute tracking_info_params = Pickups::Trace::FormatResponse.new(response: response).execute Deliveries::TrackingInfo.new(**tracking_info_params) end
shipment_info(tracking_code:, **)
click to toggle source
# File lib/deliveries/couriers/correos_express.rb, line 76 def shipment_info(tracking_code:, **) response = Shipments::Trace.new( tracking_code: tracking_code ).execute tracking_info_params = Shipments::Trace::FormatResponse.new(response: response).execute Deliveries::TrackingInfo.new(**tracking_info_params) end