Class: SEPOMEX_HCKDRK::General

Inherits:
ApiClient show all
Defined in:
lib/sepomex_hckdrk/general.rb

Class Method Summary collapse

Methods inherited from ApiClient

api_base, api_base=, config

Methods included from JsonApi

included

Class Method Details

.info_zip_code(zip_code:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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