summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-10-05 17:12:34 +0300
committerLars Wirzenius <liw@liw.fi>2017-10-05 18:02:53 +0300
commit5efef307703b24e6fc8fbc520501911d9bfd113b (patch)
tree9ca511d8b7f4f8cb9f697eba8468332fb6f6ee3b
parentfc55fe367504c7dc82c7729c0543df3541ac596e (diff)
downloadqvisqve-5efef307703b24e6fc8fbc520501911d9bfd113b.tar.gz
Add: DELETE /foos/listeners/id
-rw-r--r--qvarn/api.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/qvarn/api.py b/qvarn/api.py
index 6d76edf..a134da8 100644
--- a/qvarn/api.py
+++ b/qvarn/api.py
@@ -309,6 +309,11 @@ class QvarnAPI:
'callback': self.put_listener_callback(listeners),
},
{
+ 'method': 'DELETE',
+ 'path': path + '/listeners/<id>',
+ 'callback': self.delete_listener_callback(listeners),
+ },
+ {
'method': 'GET',
'path': path + '/listeners/<id>/notifications',
'callback': self.get_notifications_list_callback(),
@@ -436,6 +441,13 @@ class QvarnAPI:
return ok_response(pairs[0][1])
return wrapper
+ def delete_listener_callback(self, coll): # pragma: no cover
+ def wrapper(content_type, body, **kwargs):
+ obj_id = kwargs['id']
+ coll.delete(obj_id)
+ return ok_response({})
+ return wrapper
+
def notify(self, rid, rrev, change): # pragma: no cover
rt = self.get_notification_resource_type()
notifs = qvarn.CollectionAPI()
@@ -465,7 +477,7 @@ class QvarnAPI:
def listener_matches(self, obj, rid, change): # pragma: no cover
if change == 'created' and obj.get('notify_of_new'):
return True
- if change == 'updated' and obj.get('listen_on_all'):
+ if change != 'created' and obj.get('listen_on_all'):
return True
if rid in obj.get('listen_on', []):
return True
@@ -606,8 +618,11 @@ class QvarnAPI:
def delete_resource_callback(self, coll): # pragma: no cover
def wrapper(content_type, body, **kwargs):
- body = coll.delete(kwargs['id'])
- return ok_response(body)
+ obj_id = kwargs['id']
+ obj = coll.get(obj_id)
+ coll.delete(obj_id)
+ self.notify(obj_id, obj['revision'], 'deleted')
+ return ok_response({})
return wrapper