class Deliveries::Couriers::Spring::Labels::Generate

Attributes

tracking_code[RW]

Public Class Methods

new(tracking_code:) click to toggle source
# File lib/deliveries/couriers/spring/labels/generate.rb, line 8
def initialize(tracking_code:)
  self.tracking_code = tracking_code
end

Public Instance Methods

execute() click to toggle source
# File lib/deliveries/couriers/spring/labels/generate.rb, line 12
def execute
  params = {
    Apikey: Deliveries::Couriers::Spring.config(:api_key),
    Command: 'GetShipmentLabel',
    Shipment: {
      LabelFormat: 'PDF',
      TrackingNumber: tracking_code
    }
  }

  response = Deliveries::Couriers::Spring::Request.execute(params: params)

  {
    url: response[:Shipment][:CarrierTrackingUrl],
    decoded_label: Base64.decode64(response[:Shipment][:LabelImage]).force_encoding('binary')
  }
end