def getSessionsInWishlist(self, request): """query for all the sessions in a conference that the user is interested in""" profile = profileUtils.getProfileForLoggedInUser() sessionKeys = [ndb.Key(urlsafe=sessionKey) for sessionKey in profile.interestedInSessions] sessions = ndb.get_multi(sessionKeys) return SessionForms( items = [sessionUtils.copySessionToForm(session) for session in sessions] )
def queryShortSessions(self, request): """Get sessions with a given type""" query = Session.query() duration = request.duration query = query.filter(Session.duration <= duration) return SessionForms( items = [sessionUtils.copySessionToForm(session) for session in query] )
def getSessionsFiltered(self, request): """Get sessions with a given type""" query = Session.query() speaker = request.speaker if speaker != None: query = query.filter(Session.speaker == speaker) return SessionForms( items = [sessionUtils.copySessionToForm(session) for session in query] )
def taskThreeQuery(self, request): """Get sessions that aren't workshops and happen before 7pm""" query = Session.query() query = query.filter(Session.typeOfSession != "Workshop") validTime = time(hour=19, minute=00) sessions = [session for session in query if session.time < validTime] return SessionForms( items = [sessionUtils.copySessionToForm(session) for session in sessions] )
def getConferenceSessions(self, request): """Get sessions for a given conference""" # create ancestor query for all key matches for this conference conference_key = ndb.Key(urlsafe=request.websafeConferenceKey) query = Session.query(ancestor=conference_key) typeOfSession = request.typeOfSession if typeOfSession != None: query = query.filter(Session.typeOfSession == typeOfSession) return SessionForms( items = [sessionUtils.copySessionToForm(session) for session in query] )
def createConferenceSession(self, request): """Create a new session for the given Conference""" user = endpoints.get_current_user() if not user: raise endpoints.UnauthorizedException('Authorization required') user_id = getUserId(user) #only open to the creator of the conference conference = ndb.Key(urlsafe=request.websafeConferenceKey).get() if conference.organizerUserId != user_id: raise endpoints.UnauthorizedException('Authorization required') parser = SessionParser() session = parser.parseSession(request) session.put() taskqueue.add(params={'speakerName': session.speaker, 'sessionName': session.name, 'websafeConferenceKey': request.websafeConferenceKey}, url='/tasks/make_featured_speaker' ) return sessionUtils.copySessionToForm(session)