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)
Ejemplo n.º 2
0
	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)