Ejemplo n.º 1
0
    def post(self):
        try:
            self.parser.add_argument('message',
                                     required=True,
                                     help="Field message 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'))

            comment = CommentModel.create_comment(args)
            UserActivityModel.log_comment_activity(comment["user_id"],
                                                   comment["storie_id"], "ADD")

            return comment

        except BadRequest as ex:
            return ErrorHandler.create_error_response(
                "Fields message, user_id and storie_id are mandatory", 400)
        except NoUserDataFoundException as e:
            return ErrorHandler.create_error_response(str(e), 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 DBConnectionError as e:
            return ErrorHandler.create_error_response(str(e), 500)
 def delete(self, comment_id):
     try:
         self._validate_author(comment_id)
         comment = CommentModel.remove_comment(comment_id)
         UserActivityModel.log_comment_activity(comment["user_id"],
                                                comment["storie_id"],
                                                "DELETE")
         return self._get_comments_response(comment)
     except NoCommentFoundException 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)
    def put(self, comment_id):
        try:
            self.parser.add_argument('_id',
                                     required=True,
                                     help="Field id is mandatory")
            self.parser.add_argument('_rev',
                                     required=True,
                                     help="Field rev is mandatory")
            self.parser.add_argument('storie_id',
                                     required=True,
                                     help="Field storie_id is mandatory")
            self.parser.add_argument('user_id',
                                     required=True,
                                     help="Field user_id is mandatory")
            self.parser.add_argument('message',
                                     required=True,
                                     help="Field message is mandatory")

            self._validate_author(comment_id)
            args = self.parser.parse_args()

            body = json.loads(request.data.decode('utf-8'))
            comment = CommentModel.update_comment(comment_id, body)
            UserActivityModel.log_comment_activity(comment["user_id"],
                                                   comment["storie_id"],
                                                   "EDIT")

            return ResponseBuilder.build_response(comment, 200)

        except BadRequest as ex:
            return ErrorHandler.create_error_response(
                "Fields id, rev, storie_id, user_id and message are mandatory",
                400)
        except NoUserDataFoundException as e:
            return ErrorHandler.create_error_response(str(e), 400)
        except NoCommentFoundException as e:
            return ErrorHandler.create_error_response(str(e), 404)
        except DataVersionException as e:
            return ErrorHandler.create_error_response(str(e), 409)
        except UserMismatchException as e:
            return ErrorHandler.create_error_response(str(e), 409)
        except DBConnectionError as e:
            return ErrorHandler.create_error_response(str(e), 500)