class CorreiosSigep::LogisticReverse::CollectNumberActions::ProcessInvalidRequest

Public Class Methods

new(response) click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 5
def initialize(response)
  @response = response
end

Public Instance Methods

run() click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 9
def run
  klass = (errors[error_code] || errors[new_error_code] || Models::Errors::UnknownError)
  raise klass.new(error_message)
end

Private Instance Methods

error_code() click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 30
def error_code
  return nil if @response.search('//cod_erro').empty?
  @response.search('//cod_erro').text.to_i
end
error_message() click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 40
def error_message
  "#{@response.search('//msg_erro').text} #{@response.search('//descricao_erro').text}".strip
end
errors() click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 16
def errors
  {
    Models::CorreiosResponseCodes::TICKET_ALREADY_USED => Models::Errors::TicketAlreadyUsed,
    Models::CorreiosResponseCodes::UNAVAILABLE_SERVICE => Models::Errors::UnavailableService,
    Models::CorreiosResponseCodes::INEXISTENT_ZIPCODE => Models::Errors::InexistentZipcode,
    Models::CorreiosResponseCodes::UNAVAILABLE_HOUSE_COLLECT => Models::Errors::UnavailableHouseCollect,
    Models::CorreiosResponseCodes::COLLECT_NOT_ANSWERED_FOR_THE_ZIPCODE => Models::Errors::CollectNotAnsweredForTheZipcode,
    Models::CorreiosResponseCodes::NOT_CONFIGURED_CLIENT => Models::Errors::NotConfiguredClient,
    Models::CorreiosResponseCodes::INVALID_CONTRACT => Models::Errors::InvalidContract,
    Models::CorreiosResponseCodes::INVALID_DECLARED_VALUE => Models::Errors::InvalidDeclaredValue,
    Models::CorreiosResponseCodes::LOW_DECLARED_VALUE => Models::Errors::LowDeclaredValue
  }
end
new_error_code() click to toggle source
# File lib/correios_sigep/logistic_reverse/collect_number_actions/process_invalid_request.rb, line 35
def new_error_code
  return nil if @response.search('//codigo_erro').empty?
  @response.search('//codigo_erro').text.to_i
end