def getPlaces()

in functions/source/here-integration-places/places-query.py [0:0]


def getPlaces(lat, lng, radius, category):
  # get configuration
  baseUrl = "https://places.api.here.com/places/v1"
  appId = os.environ["appId"]
  appCode = os.environ["appCode"]
  # build request
  url = '%s/discover/explore' % baseUrl
  parameters = {
    "app_id": appId,
    "app_code": appCode,
    "at": "{0},{1};u={2}".format(lat, lng, radius),
    "cat": "" if category is None else category
  }
  # call API synchronously
  response = requests.get(url, params=parameters)
  # process response
  try:
    json = response.json()
  except Exception:
    print("no response", response.url)
    return None
  if "results" not in json:
    print("invalid response", json)
    return None
  # extract places information
  places = json["results"]["items"]
  extractPlace = lambda p: {
    "placeId": p['id'],
    "lat": p["position"][0] if "position" in p.keys() else None,
    "lng": p["position"][1] if "position" in p.keys() else None,
    "distance": p["distance"] if "distance" in p.keys() else None,
    "name": p["title"] if "title" in p.keys() else None,
    "address": p["vicinity"] if "vicinity" in p.keys() else None,
    "url": p["href"] if "href" in p.keys() else None,
    "locationType": "display" if "position" in p.keys() else None,
    "averageRating": p["averageRating"] if "averageRating" in p.keys() else None,
    "categoryTitle": p["category"]["title"] if "category" in p.keys() else None,
    "categoryId": p["category"]["id"] if "category" in p.keys() else None
  }
  places = map(extractPlace, places)
  # return as list
  return list(places)