def getReservation(self, sessionId, reservationId): self.__db = Database() self.__sessionId = sessionId if self.__db.connect(): #check session id and get user id auth = AuthenticationManager() if auth.isSessionIdCorrect(self.__sessionId): self.__userId = auth.getUser().getUserId() sql = 'SELECT `username`, `status` FROM `user` WHERE `user_id` = "'+str(self.__userId)+'";' self.__db.execute(sql) u = self.__db.getCursor().fetchone() username = u[0] status = u[1] if str(status).lower() == 'admin': sql = 'SELECT `reservation_id`, `title`, `description`, `start`, `end`, `image_type`, `type` FROM `reservation` WHERE `reservation_id`="'+str(reservationId)+'";' self.__db.execute(sql) data = self.__db.getCursor().fetchone() r = Reservation(data) r.setOwner(username) r.setReservationsSite() status = r.getReservationsSite()[0].getStatus() return r return None
def getReservations(self, sessionId = None, userId = None, ended = None): if sessionId == None and userId == None: return None self.__db = Database() self.__sessionId = sessionId self.__reservations = [] if self.__db.connect(): try: if userId == None: #check session id and get user id auth = AuthenticationManager() if auth.isSessionIdCorrect(self.__sessionId): self.__userId = auth.getUser().getUserId() else: self.__userId = userId if self.__userId != None: sql = 'SELECT `username` FROM `user` WHERE `user_id`="'+str(self.__userId)+'";' self.__db.execute(sql) username = self.__db.getCursor().fetchone()[0] self.__db.lock({'reservation':'READ'}) sql = 'SELECT `reservation_id`, `title`, `description`, `start`, `end`, `image_type`, `type` FROM `reservation` WHERE `user_id`="'+str(self.__userId)+'";' self.__db.execute(sql) data = self.__db.getCursor().fetchall() currentTime = NOW for d in data: end = d[4] diff = currentTime - end r = Reservation(d) r.setOwner(username) r.setReservationsSite() status = r.getReservationsSite()[0].getStatus() if ended == None: #for pcc self.__reservations.append(r) elif ended: #history (already ended) if diff >= timedelta(hours=0) or status == 'cancel': self.__reservations.append(r) else: #see reservations which havn't ended if diff < timedelta(hours=0) and status != 'cancel': self.__reservations.append(r) self.__db.unlock() finally: self.__db.close() return self.__reservations