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