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
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