mirror of
https://github.com/Kozea/Radicale.git
synced 2025-09-12 20:30:57 +00:00
- Capture previous version of event pre-overwrite for use in notification hooks
- Use previous version of event in email hooks to determine added/deleted/updated email type
This commit is contained in:
parent
e4b337d3ff
commit
80dc4995cf
10 changed files with 274 additions and 110 deletions
|
@ -55,10 +55,21 @@ def _cleanup(path):
|
|||
|
||||
class HookNotificationItem:
|
||||
|
||||
def __init__(self, notification_item_type, path, content):
|
||||
def __init__(self, notification_item_type, path, uid=None, new_content=None, old_content=None):
|
||||
self.type = notification_item_type.value
|
||||
self.point = _cleanup(path)
|
||||
self.content = content
|
||||
self.uid = uid
|
||||
self.new_content = new_content
|
||||
self.old_content = old_content
|
||||
|
||||
@property
|
||||
def content(self): # For backward compatibility
|
||||
return self.uid or self.new_content or self.old_content
|
||||
|
||||
@property
|
||||
def replaces_existing_item(self) -> bool:
|
||||
"""Check if this notification item replaces/deletes an existing item."""
|
||||
return self.old_content is not None
|
||||
|
||||
def to_json(self):
|
||||
return json.dumps(
|
||||
|
@ -67,9 +78,3 @@ class HookNotificationItem:
|
|||
sort_keys=True,
|
||||
indent=4
|
||||
)
|
||||
|
||||
|
||||
class DeleteHookNotificationItem(HookNotificationItem):
|
||||
def __init__(self, path, uid, old_content=None):
|
||||
super().__init__(notification_item_type=HookNotificationItemTypes.DELETE, path=path, content=uid)
|
||||
self.old_content = old_content
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue