class Smartsend::Shipment
Attributes
agent[RW]
currency[RW]
error[RW]
internal_id[RW]
internal_reference[RW]
labels_url[RW]
parcels[RW]
receiver[RW]
sender[RW]
services[RW]
shipping_carrier[RW]
shipping_date[RW]
shipping_method[RW]
shipping_price_excluding_tax[RW]
shipping_price_including_tax[RW]
subtotal_price_excluding_tax[RW]
subtotal_price_including_tax[RW]
success[RW]
total_price_excluding_tax[RW]
total_price_including_tax[RW]
total_tax_amount[RW]
Public Class Methods
new(args={})
click to toggle source
# File lib/smartsend/shipment.rb, line 10 def initialize(args={}) args.each do |k, v| instance_variable_set "@#{k}", v end @parcels ||= [] end
Public Instance Methods
save_and_create_label!(account: nil)
click to toggle source
# File lib/smartsend/shipment.rb, line 22 def save_and_create_label!(account: nil) response = Smartsend::Client.new(account).post('shipments/labels', self.serialize) if response.success? @success = true @labels_url = response.dig('data', 'pdf', 'link') response['data']['parcels'].each do |parcel_response| parcel = parcels.find do |item| item.internal_id.to_s == parcel_response['parcel_internal_id'].to_s end parcel&.label_url = parcel_response.dig('pdf', 'link') parcel&.tracking_code = parcel_response['tracking_code'] parcel&.tracking_link = parcel_response['tracking_link'] end else self.error = Smartsend::RequestError.build(response) end end
serialize()
click to toggle source
# File lib/smartsend/shipment.rb, line 44 def serialize { :internal_id => internal_id, :internal_reference => internal_reference, :shipping_carrier => shipping_carrier, :shipping_method => shipping_method, :shipping_date => shipping_date, :sender => sender&.serialize, :receiver => receiver&.serialize, :agent => agent&.serialize, :parcels => parcels.map(&:serialize), :services => services&.serialize, :subtotal_price_excluding_tax => subtotal_price_excluding_tax, :subtotal_price_including_tax => subtotal_price_including_tax, :shipping_price_excluding_tax => shipping_price_excluding_tax, :shipping_price_including_tax => shipping_price_including_tax, :total_price_excluding_tax => total_price_excluding_tax, :total_price_including_tax => total_price_including_tax, :total_tax_amount => total_tax_amount, :currency => currency } end
success?()
click to toggle source
# File lib/smartsend/shipment.rb, line 18 def success? success end