def get_user_conference(user_id, wsck): conference = get_conference(wsck) conferences = Conference.query(ancestor=ndb.Key(Profile, user_id)) if not conference in conferences: endpoints.UnauthorizedException("Not allowed!") return conference
def create_conference(user_id, data): p_key = ndb.Key(Profile, user_id) c_id = Conference.allocate_ids(size=1, parent=p_key)[0] c_key = ndb.Key(Conference, c_id, parent=p_key) data['key'] = c_key Conference(**data).put()
def get_conferences_with_filters(inequality_filter, filters): """Return formatted query from the submitted filters.""" query = Conference.query() if inequality_filter: query = query.order(ndb.GenericProperty(inequality_filter)) query = query.order(Conference.name) for filtr in filters: if filtr["field"] in ["month", "maxAttendees"]: filtr["value"] = int(filtr["value"]) formatted_query = ndb.query.FilterNode(filtr["field"], filtr["operator"], filtr["value"]) query = query.filter(formatted_query) return query
def _cacheAnnouncement(): """Create Announcement & assign to memcache; used by memcache cron job & putAnnouncement(). """ confs = Conference.query(ndb.AND( Conference.seatsAvailable <= 5, Conference.seatsAvailable > 0) ).fetch(projection=[Conference.name]) if confs: # If there are almost sold out conferences, # format announcement and set it in memcache announcement = '%s %s' % ( 'Last chance to attend! The following conferences ' 'are nearly sold out:', ', '.join(conf.name for conf in confs)) memcache.set(MEMCACHE_ANNOUNCEMENTS_KEY, announcement) else: # If there are no sold out conferences, # delete the memcache announcements entry announcement = "" memcache.delete(MEMCACHE_ANNOUNCEMENTS_KEY) return announcement
def get_user_conferences(user_id): confs = Conference.query(ancestor=ndb.Key(Profile, user_id)) profile = ndb.Key(Profile, user_id).get() return confs, profile