def _addSessionToWishlist(self, request): #Check if the user is logged in user = self._getLoggedInUser() user_id = getUserId(user) #Check if the theSession exists theSession = ndb.Key(urlsafe=request.websafeSessionKey).get() if not theSession: raise endpoints.BadRequestException("Invalid session key") #Get user profile prof = ndb.Key(Profile, user_id).get() if not prof: raise endpoints.BadRequestException("Unable to find user profile") wishlistEntry = UserWishlist.query(ancestor=prof.key).filter( getattr(UserWishlist, "wishlistedSessionKey") == request.websafeSessionKey ).get() print wishlistEntry #If the desired wishlist entry doesn't already exist, create it. if not wishlistEntry: wishlistEntry = UserWishlist(parent=prof.key) setattr(wishlistEntry, "wishlistedSessionKey", request.websafeSessionKey) wishlistEntry.put() return self._getUserWishlistByProfile(prof)
def _getUserWishlistByProfile(self, profile): #Given a profile, get its key and return the sessions on the wishlist if not profile: raise endpoints.BadRequestException("Invalid profile!") #Get the wishlist entries and add them to the wishlist to return. wishlistEntries = UserWishlist.query(ancestor=profile.key).fetch(limit=None) finishedWishlist = SessionForms() if wishlistEntries: for entry in wishlistEntries: theSession = ndb.Key(urlsafe=getattr(entry, "wishlistedSessionKey")).get() sf = self._copySessionToForm(theSession) sf.check_initialized() finishedWishlist.items.append(sf) return finishedWishlist