class SEPOMEX_HCKDRK::General

Public Class Methods

info_zip_code(zip_code:) click to toggle source
# File lib/sepomex_hckdrk/general.rb, line 6
def self.info_zip_code(zip_code:)
  url = "query/info_cp/#{zip_code}"
  response = api_get(url: url)
  raise SEPOMEX_HCKDRK::RequestError.new(response[:error_message]) if !response.kind_of?(Array) && response[:error] == true
  payload = response[0]
  raise SEPOMEX_HCKDRK::RequestError.new(payload[:error_message]) if payload[:error] == true
  data = {
    zip_code: payload[:response][:cp].present? ? payload[:response][:cp] : nil,
    settlement: payload[:response][:asentamiento].present? ? payload[:response][:asentamiento] : nil,
    settlement_type: payload[:response][:tipo_asentamiento].present? ? payload[:response][:tipo_asentamiento] : nil,
    municipality: payload[:response][:municipio].present? ? payload[:response][:municipio] : nil,
    state: payload[:response][:estado].present? ? payload[:response][:estado] : nil,
    city: payload[:response][:ciudad].present? ? payload[:response][:ciudad] : nil,
    country: payload[:response][:pais].present? ? payload[:response][:pais] : nil
  }
  SEPOMEX_HCKDRK::ZipCode.new(*data.values_at(*SEPOMEX_HCKDRK::ZipCode.members))
end