Exemplo n.º 1
0
 def get(cls, question_id):
     '''get all answers to a question'''
     limit = request.args.get('limit')
     pages = request.args.get('pages')
     if limit:
         limit = ast.literal_eval(limit)
     if pages:
         pages = ast.literal_eval(pages)
     q_id = ast.literal_eval(question_id)
     my_answer = AnswersModel()
     result = my_answer.get_all_answers_to_question(q_id, limit, pages)
     if "error" in result:
         return dict(message=result["message"]), result["error"]
     all_answers = []
     for i in result:
         answer = {
             "username": i[3],
             "content": i[2],
             "upvotes": i[5],
             "downvotes": i[6]
         }
         if i[4] == 1:
             answer["accepted"] = "true"
         all_answers.append(answer)
     return all_answers, 200
Exemplo n.º 2
0
 def post(cls, question_id):
     '''post an answer'''
     data = request.get_json()
     result = validate.check_for_data(data)
     if not result:
         content = data.get("content")
         result = validate.check_for_content([content])
         if not result:
             result = validate.check_for_white_spaces([content])
             if not result:
                 username = get_jwt_identity()
                 q_id = ast.literal_eval(question_id)
                 my_answer = AnswersModel()
                 result2 = my_answer.post_answer(q_id, content, username)
                 return result2["response"], result2["status_code"]
     return result, 400
Exemplo n.º 3
0
 def get(cls, question_id, answer_id):
     '''get all comments for an answer'''
     limit = request.args.get('limit')
     pages = request.args.get('pages')
     q_id = ast.literal_eval(question_id)
     a_id = ast.literal_eval(answer_id)
     if limit:
         limit = ast.literal_eval(limit)
     if pages:
         pages = ast.literal_eval(pages)
     my_answer = AnswersModel()
     result = my_answer.get_answer_comments(q_id, a_id, limit, pages)
     if "status_code" in result:
         return result["response"], result["status_code"]
     all_comments = []
     for i in result:
         all_comments.append({i[2]: i[3]})
     return all_comments, 200
Exemplo n.º 4
0
 def put(cls, question_id, answer_id, comments_id):
     '''update comment'''
     q_id = ast.literal_eval(question_id)
     a_id = ast.literal_eval(answer_id)
     c_id = ast.literal_eval(comments_id)
     username = get_jwt_identity()
     data = request.get_json()
     result = validate.check_for_data(data)
     if not result:
         content = data.get("content")
         result = validate.check_for_content([content])
         if not result:
             result = validate.check_for_white_spaces([content])
             if not result:
                 my_answer = AnswersModel()
                 result2 = my_answer.update_comment(q_id, a_id, c_id,
                                                    username, content)
                 return result2["response"], result2["status_code"]
     return result, 400
Exemplo n.º 5
0
 def put(cls, question_id, answer_id):
     '''put method (edit or accept answer)'''
     data = request.get_json()
     q_id = ast.literal_eval(question_id)
     a_id = ast.literal_eval(answer_id)
     username = get_jwt_identity()
     content = ""
     action = "accept"
     if data:
         content = data.get("content")
         result = validate.check_for_content([content])
         if result:
             return result, 400
         result = validate.check_for_white_spaces([content])
         if result:
             return result, 400
         action = "update"
     my_answer = AnswersModel()
     result = my_answer.update_or_accept_answer(q_id, a_id, username, content, action)
     return result["response"], result["status_code"]