From 13fd3785f276f028d945621374b5b0088a8a469c Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Thu, 15 Dec 2022 13:47:12 -0700 Subject: [PATCH] Handle updates for already deleted posts --- activities/models/post.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/activities/models/post.py b/activities/models/post.py index 97ee0e0..599a1ea 100644 --- a/activities/models/post.py +++ b/activities/models/post.py @@ -643,7 +643,7 @@ class Post(StatorModel): ) created = True else: - raise KeyError(f"No post with ID {data['id']}", data) + raise cls.DoesNotExist(f"No post with ID {data['id']}", data) if update or created: post.content = data["content"] post.summary = data.get("summary") @@ -755,7 +755,11 @@ class Post(StatorModel): if data["actor"] != data["object"]["attributedTo"]: raise ValueError("Create actor does not match its Post object", data) # Find it and update it - cls.by_ap(data["object"], create=False, update=True) + try: + cls.by_ap(data["object"], create=False, update=True) + except cls.DoesNotExist: + # We don't have a copy - assume we got a delete first and ignore. + pass @classmethod def handle_delete_ap(cls, data):