Exemple #1
0
    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()))
Exemple #2
0
    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
        ))