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 search(self, value, key='name', status='all'):
     logger.info('NdbBusinessDao:: DBHIT: search for %s, %s ' % key % value)
     search_query = Business.query(Business._properties[key] == value)
     if status != 'all':
         status_value = STATUS_DICT.get(status)
         search_query = search_query.filter(status == status_value)
     search_query = search_query.order(Business.updated_on)
     return search_query.fetch()
Exemple #3
0
 def get(self):
     if not users.is_current_user_admin():
         self.abort(404)
     for b in Business.query().iter():
         b.key.delete()
     for c in Coupon.query().iter():
         c.key.delete()
     self.init()
     self.response.write('success')
Exemple #4
0
 def query_by_owner(self, user, status='all'):
     logger.info('NdbBusinessDao:: DBHIT: query_by_owner for %s ' %
                 user.email)
     business_query = Business.query(
         ndb.OR(Business.owners == user.key,
                Business.created_by == user.key,
                Business.updated_by == user.key))
     if status != 'all':
         status_value = STATUS_DICT.get(status)
         business_query = business_query.filter(status == status_value)
     business_query = business_query.order(Business.updated_on)
     return business_query.fetch()
Exemple #5
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
        ))
Exemple #6
0
 def query_by_alias(self, alias):
     logger.info('NdbBusinessDao:: DBHIT: query_by_alias for %s ' % alias)
     business_query = Business.query(Business.alias == alias)
     business = business_query.fetch(1)
     return business[0] if business is not None and len(
         business) > 0 else None