Exemplo n.º 1
0
    def delete(self, post_id):
        post_delete = PostModel.find_by_post_id(post_id)
        if post_delete.login == get_jwt_identity():

            comments_delete = CommentModel.find_by_post_id(post_delete.post_id)
            hashtags_delete = HashtagModel.get_hashtags_for_post(post_delete.post_id)

            if comments_delete:
                for comment in comments_delete:
                    comment.delete_from_db()
            if hashtags_delete:
                for hashtag in hashtags_delete:
                    hashtag.delete_from_db()

            post_delete.delete_from_db()
            return {'message': 'Post deleted'}, 200
        else:
            return {'message': 'It is not a post of user logged in.'}, 404
Exemplo n.º 2
0
    def put(self, post_id):
        post = PostModel.find_by_post_id(post_id)
        if post:

            if post.login == get_jwt_identity():
                try:
                    post_to_update = post_update_schema.load(request.get_json(), partial=True, instance=post)
                except ValidationError as err:
                    return err.messages, 400
                possible_hashtags = HashtagModel.find_hashtags_in_text(post_to_update.description)
                if possible_hashtags:
                    for hashtag in possible_hashtags:
                        existing_hashtag = HashtagModel.find_only_for_post(hashtag, post.post_id)
                        if not existing_hashtag:
                            hashtag_data = {"post_id": post.post_id , "hashtag": hashtag}
                            new_hashtag = hashtag_schema.load(hashtag_data)
                            new_hashtag.save_to_db()
                post_to_update.save_to_db()
                return {"message": "Post updated successfully."}, 200
        else:
            return {'message': 'It is not a post of logged in user'}, 404