예제 #1
0
    def get_question_answer(peer_id, question_number, polling_name):
        try:
            return session.query(Question.answer).filter(Question.polling_name == polling_name)\
                .filter(Question.question_number == str(question_number)).filter(Question.peer_id == peer_id).first()[0]

        except Exception as e:
            session.rollback()
            logger.error("Failed to get questions, {}".format(e))
예제 #2
0
    def get_all_questions(polling_name):
        try:
            return session.query(Question).filter(Question.polling_name == polling_name)\
                .order_by(Question.peer_id, Question.question_number).all()

        except Exception as e:
            session.rollback()
            logger.error("Failed to get questions, {}".format(e))
예제 #3
0
    def get_all_participate(polling_name, question_number):
        try:
            return session.query(Question.peer_id).filter(Question.polling_name == polling_name)\
                .filter(Question.question_number == str(question_number)).distinct()

        except Exception as e:
            session.rollback()
            logger.error("Failed to get questions, {}".format(e))
    def get_polling_control():

        try:
            control = session.query(PollingControl).one_or_none()
            return control.allowed
        except Exception as e:
            session.rollback()
            logger.error("Fail to get polling control, e:{}".format(e))
예제 #5
0
    def get_polling_name(polling_number):
        try:
            all_polling_names = session.query(PollingName).order_by(
                PollingName.time).all()
            return all_polling_names[polling_number].polling_name

        except Exception as e:
            session.rollback()
            logger.error("Failed get polling name, error:{}".format(e))
예제 #6
0
 def add(peer_id, age, field, experience_duration):
     try:
         user = User(peer_id, age, field, experience_duration)
         session.add(user)
         session.commit()
         logger.info("Added a user.")
         return user
     except Exception as e:
         session.rollback()
         logger.error("Failed to add user, error is {}".format(e))
예제 #7
0
    def get_question_number(last_polling_name):

        try:
            question_array =  session.query(Question.question_number).filter(Question.polling_name == last_polling_name)\
                .distinct()
            question_array = [int(item[0]) for item in question_array]
            return max(question_array)
        except Exception as e:
            session.rollback()
            logger.error("Failed to get questions, {}".format(e))
    def update_allowed():

        try:
            control = session.query(PollingControl).one_or_none()
            control.allowed = False
            session.commit()
            return control

        except Exception as e:
            session.rollback()
            logger.error("Faile to update polling controll, e:{}".format(e))
예제 #9
0
    def get_last_polling_message():
        try:
            all_polling_messages = session.query(PollingName).order_by(
                PollingName.time).all()
            if len(all_polling_messages) > 0:
                return all_polling_messages[-1].polling_message
            else:
                return None

        except Exception as e:
            session.rollback()
            logger.error("Failed to get polling message")
예제 #10
0
 def add(polling_name, polling_message):
     try:
         polling = PollingName(polling_name=polling_name,
                               polling_message=polling_message)
         session.add(polling)
         session.commit()
         logger.info("Added a question answer.")
         return polling_name
     except Exception as e:
         session.rollback()
         logger.error(
             "Failed to add question answer, error is {}".format(e))
예제 #11
0
 def add(peer_id, question_number, answer, polling_name):
     try:
         question = Question(peer_id,
                             question_number=question_number,
                             polling_name=polling_name,
                             answer=answer,
                             flag=1)
         session.add(question)
         session.commit()
         logger.info("Added a question answer.")
         return question
     except Exception as e:
         session.rollback()
         logger.error(
             "Failed to add question answer, error is {}".format(e))
    def add_or_update(allowed):
        try:
            control = session.query(PollingControl).one_or_none()
            if not control:

                polling_control = PollingControl(allowed=allowed)
                session.add(polling_control)
                session.commit()
            else:
                control.allowed = True
                session.commit()
                logger.info("Added a question answer.")

            return control

        except Exception as e:
            session.rollback()
            logger.error(
                "Failed to add question answer, error is {}".format(e))