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