summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-10-05 17:37:04 +0300
committerLars Wirzenius <liw@liw.fi>2017-10-05 18:02:55 +0300
commite8c6f808bfeca9b48e9c790453caf657c5317ebd (patch)
tree3c3d632c9dc9672855521e951935647a899f0fdf
parenteda98f9953edc5b6493bfde6ebc379f63e08195a (diff)
downloadqvisqve-e8c6f808bfeca9b48e9c790453caf657c5317ebd.tar.gz
Add: DELETE /foos/listeners/id1/notifications/id2
-rw-r--r--qvarn/api.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/qvarn/api.py b/qvarn/api.py
index cbb055c..e68cda7 100644
--- a/qvarn/api.py
+++ b/qvarn/api.py
@@ -323,6 +323,11 @@ class QvarnAPI:
'path': path + '/listeners/<listener_id>/notifications/<id>',
'callback': self.get_notification_callback(),
},
+ {
+ 'method': 'DELETE',
+ 'path': path + '/listeners/<listener_id>/notifications/<id>',
+ 'callback': self.delete_notification_callback(),
+ },
]
def get_post_listener_callback(self, coll, listeners): # pragma: no cover
@@ -450,6 +455,20 @@ class QvarnAPI:
return ok_response({})
return wrapper
+ def delete_notification_callback(self): # pragma: no cover
+ def wrapper(content_type, body, **kwargs):
+ listener_id = kwargs['listener_id']
+ notification_id = kwargs['id']
+ cond = qvarn.All(
+ qvarn.Equal('type', 'notification'),
+ qvarn.Equal('listener_id', listener_id),
+ qvarn.Equal('id', notification_id),
+ )
+ for keys, _ in self._store.find_objects(cond):
+ self._store.remove_objects(**keys)
+ return ok_response({})
+ return wrapper
+
def find_notifications(self, listener_id): # pragma: no cover
cond = qvarn.All(
qvarn.Equal('type', 'notification'),