def post(self): try: self.parser.add_argument('reaction', required=True, help="Field reaction is mandatory") self.parser.add_argument('user_id', required=True, help="Field user_id is mandatory") self.parser.add_argument('storie_id', required=True, help="Field storie_id is mandatory") args = self.parser.parse_args() validate_sender(args.get('user_id')) reaction = ReactionModel.create_reaction(args) UserActivityModel.log_reaction_activity(reaction["user_id"], reaction["storie_id"], reaction["reaction"], "ADD") return reaction except BadRequest as ex: return ErrorHandler.create_error_response( "Fields reaction, user_id and storie_id are mandatory", 400) except NoStorieFoundException as e: return ErrorHandler.create_error_response(str(e), 400) except UserMismatchException as e: return ErrorHandler.create_error_response(str(e), 409) except StorieReactionAlreadyFoundException as e: return ErrorHandler.create_error_response(str(e), 400) except DBConnectionError as e: return ErrorHandler.create_error_response(str(e), 500)
def delete(self, reaction_id): try: self._validate_author(reaction_id) reaction = ReactionModel.remove_reaction(reaction_id) UserActivityModel.log_reaction_activity(reaction["user_id"], reaction["storie_id"], reaction["reaction"], "DELETE") return self._get_reactions_response(reaction) except NoReactionFoundException as e: return ErrorHandler.create_error_response(str(e), 404) except UserMismatchException as e: return ErrorHandler.create_error_response(str(e), 409) except DBConnectionError as e: return ErrorHandler.create_error_response(str(e), 500)