summaryrefslogtreecommitdiff
path: root/qvisqve/management_router.py
diff options
context:
space:
mode:
Diffstat (limited to 'qvisqve/management_router.py')
-rw-r--r--qvisqve/management_router.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/qvisqve/management_router.py b/qvisqve/management_router.py
index 6095d41..5592677 100644
--- a/qvisqve/management_router.py
+++ b/qvisqve/management_router.py
@@ -69,6 +69,11 @@ class ManagementEndpoint:
},
{
'method': 'PUT',
+ 'path': '{}/<id>'.format(self._path),
+ 'callback': self._update,
+ },
+ {
+ 'method': 'PUT',
'path': '{}/<id>/secret'.format(self._path),
'callback': self._set_secret,
},
@@ -93,6 +98,20 @@ class ManagementEndpoint:
location = '{}{}/{}'.format(self._baseurl, self._path, entity_id)
return qvisqve.created_response(entity, location)
+ def _update(self, content_type, body, **kwargs):
+ qvisqve.log.log('info', msg_text='Updating', path=self._path)
+
+ entity_id = kwargs['id']
+ try:
+ entity = self._entities.get(entity_id)
+ except qvisqve.ResourceDoesNotExist as e:
+ return qvisqve.not_found_response()
+
+ self._entities.create(entity_id, body)
+
+ entity = self._entities.get(entity_id)
+ return qvisqve.ok_response(entity)
+
def _list(self, content_type, body, **kwargs):
qvisqve.log.log('info', msg_text='Listing', path=self._path)
entity_ids = list(self._entities.list())