def createResult(cls, result): cls.initDAO() session = Session() try: session.add(result) session.flush() session.commit() except IntegrityError as err: return cls.getTrainingSessionByID(result.id) session.close() return result
def createEmail(cls, email): cls.initDAO() session = Session() try: session.add(email) session.flush() session.commit() except IntegrityError as err: return cls.getEmailByID(email.id) session.close() return email
def createUser(cls, user): cls.initDAO() session = Session() try: session.add(user) session.flush() session.commit() except IntegrityError as err: return cls.getUserByID(user.id) return user
def getAllUsers(cls): cls.initDAO() session = Session() return session.query(User).all()
def getUserByID(cls, id): cls.initDAO() session = Session() return session.query(User).filter(User.id == id).limit(1).first()
def getAggregatedResultForUser(cls, user): cls.initDAO() session = Session() return session.query(func.sum(Result.correct).label("total_correct"), func.sum(Result.wrong).label("total_wrong")).filter(Result.user_id == user).first()
def getResultByID(cls, id): cls.initDAO() session = Session() return session.query(Result).filter(Result.id == id).limit(1).first()
def getLogin(cls, login): cls.initDAO() session = Session() return session.query(Login).filter( Login.username == login.username).first()
def getAllEmails(cls): cls.initDAO() session = Session() return session.query(Email).all()
def getRandomNEmails(cls, n): cls.initDAO() session = Session() return session.query(Email).order_by(func.random()).limit(5)
def getEmailByID(cls, id): cls.initDAO() session = Session() return session.query(Email).order_by().limit(1)
def createTrainingSession(cls, training_session): cls.initDAO() session = Session() try: session.add(training_session) session.flush() print("ID is") print(training_session.id) session.commit() except IntegrityError as err: return cls.getTrainingSessionByID(training_session.id) except InvalidRequestError as ierr: print(ierr) l = session.merge(training_session) session.add(l) session.flush() print("ID is") print(training_session.id) session.commit() session.close() return training_session
def getTrainingSessionByID(cls, id): cls.initDAO() session = Session() return session.query(TrainingSession).filter(TrainingSession.id == id).limit(1).first()