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 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()
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')
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()
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 ))
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