Class: CDEKApiClient::API::Location

Inherits:
Object
  • Object
show all
Defined in:
lib/cdek_api_client/api/location.rb

Overview

Handles location-related API requests.

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Location

Initializes the Location object.

Parameters:



12
13
14
# File 'lib/cdek_api_client/api/location.rb', line 12

def initialize(client)
  @client = client
end

Instance Method Details

#cities(use_live_data: false) ⇒ Array<Hash>

Retrieves a list of cities.

Parameters:

  • use_live_data (Boolean) (defaults to: false)

    whether to use live data or cached data.

Returns:

  • (Array<Hash>)

    list of cities.



20
21
22
# File 'lib/cdek_api_client/api/location.rb', line 20

def cities(use_live_data: false)
  use_live_data ? @client.request('get', 'location/cities') : read_data_from_file('cities_mapping.json')
end

#offices(use_live_data: false) ⇒ Array<Hash>

Retrieves a list of offices.

Parameters:

  • use_live_data (Boolean) (defaults to: false)

    whether to use live data or cached data.

Returns:

  • (Array<Hash>)

    list of offices.



36
37
38
# File 'lib/cdek_api_client/api/location.rb', line 36

def offices(use_live_data: false)
  use_live_data ? @client.request('get', 'deliverypoints') : read_data_from_file('offices_mapping.json')
end

#postal_codes(city_code, use_live_data: false) ⇒ Array<Hash>

Retrieves a list of postal codes for a specific city.

Parameters:

  • city_code (String)

    the city code to filter postal codes.

  • use_live_data (Boolean) (defaults to: false)

    whether to use live data or cached data.

Returns:

  • (Array<Hash>)

    list of postal codes.



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cdek_api_client/api/location.rb', line 45

def postal_codes(city_code, use_live_data: false)
  if city_code.nil? || (city_code.respond_to?(:empty?) && city_code.empty?)
    raise ArgumentError,
          'city_code is required'
  end

  response = if use_live_data
               @client.request('get', "location/postalcodes?code=#{city_code}")
             else
               read_data_from_file("postal_codes_#{city_code}_mapping.json")
             end
  response.is_a?(Hash) && response.key?('postal_codes') ? response['postal_codes'] : response
end

#regions(use_live_data: false) ⇒ Array<Hash>

Retrieves a list of regions.

Parameters:

  • use_live_data (Boolean) (defaults to: false)

    whether to use live data or cached data.

Returns:

  • (Array<Hash>)

    list of regions.



28
29
30
# File 'lib/cdek_api_client/api/location.rb', line 28

def regions(use_live_data: false)
  use_live_data ? @client.request('get', 'location/regions') : read_data_from_file('regions_mapping.json')
end