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))
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))
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))
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))
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))
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))
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")
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))
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))