class GdsApi::PlacesManager
def api_url(type, params)
def api_url(type, params) vals = %i[limit lat lng postcode local_authority_slug].select { |p| params.include? p } querystring = URI.encode_www_form(vals.map { |p| [p, params[p]] }) "#{@endpoint}/places/#{type}.json?#{querystring}" end
def places(type, lat, lon, limit = 5)
def places(type, lat, lon, limit = 5) url = api_url(type, lat:, lng: lon, limit:) get_json(url) end
def places_for_postcode(type, postcode, limit = 5, local_authority_slug = nil)
def places_for_postcode(type, postcode, limit = 5, local_authority_slug = nil) options = { postcode:, limit: } options.merge!(local_authority_slug:) if local_authority_slug url = api_url(type, options) get_json(url) || [] end
def places_kml(type)
def places_kml(type) get_raw("#{@endpoint}/places/#{type}.kml").body end