def get(self): ''' Returns business URI's, filtered by optional parameters Parameters: name - Name of the business lat,lon - Location of the business ''' params = self.load_http_params({ 'lat': (float, False), 'lon': (float, False), 'name': (str, False) }) if 'lat' in params and 'lon' in params: query = Business.query_location( lat=self.params['lat'], lon=self.params['lon'] ) else: query = Business.query() if 'name' in params and params['name']: query = query.filter(Business.name == params['name']) self.response.status = '200 OK' flag = False for key in query.iter(keys_only=True): if flag: self.response.write('\n') else: flag = True self.response.write(str(key.id()))
def get(self): ''' Lists coupons, filtered by optional parameters Parameters: name - Name of the business lat,lon - Location of the business ''' try: lat = float(urllib.unquote(self.request.get('lat'))) lon = float(urllib.unquote(self.request.get('lon'))) except ValueError: query = Business.query() else: query = Business.query_location(lat=lat, lon=lon) name = urllib.unquote(self.request.get('name')) if name: query = query.filter(Business.name == name) coupons = [c for business in query.map(lambda x: Coupon.get_by_business(x.key.id())) for c in business] coupons = sorted(coupons, lambda x, y: cmp(x.end, y.end)) now = datetime.datetime.now() i = 0 expired_index = None for i in range(len(coupons)): if expired_index is None and now < coupons[i].end: expired_index = i if now < coupons[i].start: break expired = coupons[0:expired_index] active = coupons[expired_index:i] inactive = coupons[i:] self.response.status = '200 OK' self.response.write(self.template.render( coupons=active+inactive+expired ))