diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-11-18 20:32:37 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-11-18 20:32:37 +0100 |
commit | 792c059b9997b9e98ee12b6105b778b6d5a9e0ca (patch) | |
tree | 9f3c4e9f9f7e85940a25a11540d56f9c50b7b3f2 /ick2/apibase.py | |
parent | 10edd83909027a647e256afb76dc6a09a55b553b (diff) | |
download | ick2-792c059b9997b9e98ee12b6105b778b6d5a9e0ca.tar.gz |
Refactor: move ResourceApiBase to apibase.py
Diffstat (limited to 'ick2/apibase.py')
-rw-r--r-- | ick2/apibase.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ick2/apibase.py b/ick2/apibase.py index 36aad3b..c7abc45 100644 --- a/ick2/apibase.py +++ b/ick2/apibase.py @@ -127,3 +127,31 @@ class APIbase: def show(self, name): raise NotImplementedError() + + +class ResourceApiBase(APIbase): + + def __init__(self, type_name, state): + super().__init__(state) + self._type_name = type_name + + def list(self): + return { + self._type_name: self._state.get_resources(self._type_name), + } + + def show(self, name): + return self._state.get_resource(self._type_name, name) + + def create(self, body): + return self._state.add_resource( + self._type_name, self.get_resource_name(body), body) + + def get_resource_name(self, resource): # pragma: no cover + raise NotImplementedError() + + def update(self, body, name): + return self._state.update_resource(self._type_name, name, body) + + def delete(self, name): + self._state.remove_resource(self._type_name, name) |