def put(self, question_id, answer_id):
        data = parser.parse_args()
        data['question_id'] = question_id

        answer = AnswerModel.find_by_id(answer_id)

        if answer is None:
            new_answer = AnswerModel(**data)
            try:
                new_answer.save()

                return new_answer.json(), 201
            except:
                return {
                    "message": "An error occurred while inserting Question."
                }, 500

        try:
            answer.update(**data)
        except:
            return {
                "message": "An error occurred while updating Question."
            }, 500

        return answer.json(), 200
    def post(self, question_id):
        data = parser.parse_args()
        data['question_id'] = question_id

        answer = AnswerModel(**data)
        try:
            answer.save()
        except:
            return {
                "message": "An error occurred while inserting Question."
            }, 500

        return answer.json(), 201
    def post(self):
        # parse_args() return only arguments added by add_argument as Namespace
        # Any missing added argument will stop and return help message to the browser
        data = Answer.parser.parse_args()

        # data namespace is rolled into one argument (**data)
        answer = AnswerModel(**data)

        try:
            answer.save_to_db()
        except:
            return {"message": "An error occurred inserting the item."}, 500

        return answer.json(), 201
    def put(self, answer_id):
        data = Answer.parser.parse_args()

        answer = AnswerModel.find_by_id(answer_id)

        if answer is None:  # Create a new answer if it does not exist in the database
            answer = AnswerModel(**data)
        else:  # Update the answer if it exists in the database
            answer.question_id = data['question_id']
            answer.answer_is_correct = data['answer_is_correct']
            answer.answer_statement = data['answer_statement']
            answer.answer_update = datetime.now()

        answer.save_to_db()

        return answer.json()
    def put(self):
        request_data = Answer.parser.parse_args()

        try:
            answer = AnswerModel.find_by_id(request_data['answer_id'])

            if not answer:
                answer = AnswerModel(request_data['answer_id'],
                                     request_data['quiz_id'],
                                     request_data['body'],
                                     request_data['is_correct'],
                                     request_data['path_to_attachment'],
                                     request_data['is_selected'])
            else:  # if 'answer' is defined, this means there's an existing record under this ID, so update it with the values we have

                if request_data['answer_id'] != None:
                    answer.answer_id = request_data['answer_id']

                if request_data['quiz_id'] != None:
                    answer.quiz_id = request_data['quiz_id']

                if request_data['body'] != None:
                    answer.body = request_data['body']

                if request_data['is_correct'] != None:
                    answer.is_correct = request_data['is_correct']

                if request_data['path_to_attachment'] != None:
                    answer.path_to_attachment = request_data[
                        'path_to_attachment']

                if request_data['is_selected'] != None:
                    answer.is_selected = request_data['is_selected']
        except:
            return {
                'message':
                'An error occurred while reading the answer ID from the database'
            }, 500

        try:
            answer.save_to_database()
            return answer.json()
        except:
            return {
                'message':
                'An error occurred while updating the answer in the database'
            }, 500