class Deliveries::Couriers::CorreosExpress::Pickups::Trace

Constants

WSDL_LIVE_PATH
WSDL_TEST_PATH

Attributes

tracking_code[RW]

Public Class Methods

new(tracking_code:) click to toggle source
# File lib/deliveries/couriers/correos_express/pickups/trace.rb, line 13
def initialize(tracking_code:)
  self.tracking_code = tracking_code
end

Public Instance Methods

execute() click to toggle source
# File lib/deliveries/couriers/correos_express/pickups/trace.rb, line 17
def execute
  params = {
    'solicitante' => CorreosExpress.config(:client_code),
    'dato' => tracking_code,
    'password' => '',
    'codCliente' => CorreosExpress.config(:pickup_receiver_code)
  }

  basic_auth = [
    CorreosExpress.config(:username),
    CorreosExpress.config(:password)
  ]

  client = Savon.client wsdl: CorreosExpress.live? ? WSDL_LIVE_PATH : WSDL_TEST_PATH,
                        basic_auth: basic_auth,
                        logger: Deliveries.logger,
                        log: Deliveries.debug

  response = client.call(:seguimiento_recogida, message: params)

  response_result = response.body[:seguimiento_recogida_response][:return]
  unless response_result && response_result[:recogida].present?
    raise Deliveries::APIError,
          response_result[:mensaje_retorno].to_s.strip
  end

  response_result
end