diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-10-05 17:37:04 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-10-05 18:02:55 +0300 |
commit | e8c6f808bfeca9b48e9c790453caf657c5317ebd (patch) | |
tree | 3c3d632c9dc9672855521e951935647a899f0fdf | |
parent | eda98f9953edc5b6493bfde6ebc379f63e08195a (diff) | |
download | qvisqve-e8c6f808bfeca9b48e9c790453caf657c5317ebd.tar.gz |
Add: DELETE /foos/listeners/id1/notifications/id2
-rw-r--r-- | qvarn/api.py | 19 |
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'), |