class Deliveries::Couriers::MondialRelayDual::Shipments::Create::FormatParams

Attributes

collection_point[RW]
language[RW]
parcels[RW]
receiver[RW]
reference_code[RW]
remarks[RW]
sender[RW]

Public Class Methods

new(sender:, receiver:, parcels:, reference_code:, collection_point:, remarks:, language:) click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 9
def initialize(sender:, receiver:, parcels:, reference_code:, collection_point:, remarks:, language:)
  self.sender = sender.courierize(:mondial_relay_dual)
  self.receiver = receiver.courierize(:mondial_relay_dual)
  self.parcels = parcels
  self.reference_code = reference_code
  self.collection_point = collection_point
  self.remarks = remarks
  self.language = language
end

Public Instance Methods

execute() click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 19
def execute
  {
    culture: culture,
    order_no: reference_code,
    parcel_count: parcels.to_i,
    delivery_mode: delivery_mode,
    collection_mode: collection_mode,
    deliver_instruction: remarks,
    parcels: parcel_list,
    sender: {
      streetname: sender.street,
      country_code: sender.country,
      post_code: sender.postcode,
      city: sender.city,
      address_add_1: sender.name,
      phone_no: sender.phone,
      email: sender.email
    },
    recipient: {
      streetname: receiver.street,
      country_code: receiver.country,
      post_code: receiver.postcode,
      city: receiver.city,
      address_add_1: receiver.name,
      phone_no: receiver.phone,
      email: receiver.email
    }
  }
end

Private Instance Methods

collection_mode() click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 75
def collection_mode
  {
    mode: 'CCC',
    location: ''
  }
end
culture() click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 51
def culture
  case language.to_s.downcase
  when 'es' then 'es-ES'
  when 'de' then 'de-DE'
  when 'en' then 'en-GB'
  else 'fr-FR'
  end
end
delivery_mode() click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 60
def delivery_mode
  if collection_point
    {
      mode: '24R',
      location: collection_point.point_id
    }
  else
    home_delivery_mode = MondialRelayDual.config("countries.#{receiver.country.downcase}.home_delivery_mode") || 'HOM'
    {
      mode: home_delivery_mode,
      location: ''
    }
  end
end
parcel_list() click to toggle source
# File lib/deliveries/couriers/mondial_relay_dual/shipments/create/format_params.rb, line 82
def parcel_list
  list = []
  parcels.times do
    list << {
      content: 'VĂȘtements',
      weight: {
        value: '1000',
        unit: 'gr'
      }
    }
  end

  list
end