diff options
author | sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> | 2020-11-30 16:29:53 +0100 |
---|---|---|
committer | sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> | 2020-12-07 14:16:30 +0100 |
commit | 73e5fced569a3177629428d32f48a45066c6a3c4 (patch) | |
tree | e7e266af4088e62a6e359c40c49c61fdb4a8f28e | |
parent | 9611de4988858f79eb60d7c793e13f6dce5ae4eb (diff) |
feat(clients): implement announcement API in python client
Towards #5.
-rw-r--r-- | clients/py/flipdot_gschichtler/__init__.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/clients/py/flipdot_gschichtler/__init__.py b/clients/py/flipdot_gschichtler/__init__.py index 06ee443..6942489 100644 --- a/clients/py/flipdot_gschichtler/__init__.py +++ b/clients/py/flipdot_gschichtler/__init__.py @@ -40,7 +40,7 @@ class FlipdotGschichtlerClient(): def delete(self, queue_id): if self.api_token is None: - raise Exception('missing api token') + raise FlipdotGschichtlerNoToken endpoint = '/api/v2/queue/' + str(queue_id) r = requests.delete(self.base_url + endpoint, data = { 'token': self.api_token }) @@ -68,3 +68,39 @@ class FlipdotGschichtlerClient(): else: message = self.__get_error_message(r) raise FlipdotGschichtlerClient(endpoint, r.status_code, message) + + def announcement(self): + endpoint = '/api/v2/announcement' + r = requests.get(self.base_url + endpoint) + + if r.status_code == 200: + return r.json()['announcement'] + elif r.status_code == 404: + # no / empty announcement + assert 'announcement' in r.json() + return None + else: + message = self.__get_error_message(r) + raise FlipdotGschichtlerError(endpoint, r.status_code, message) + + def set_announcement(self, text): + if self.api_token == None: + raise FlipdotGschichtlerNoToken + + endpoint = '/api/v2/announcement' + r = requests.put(self.base_url + endpoint, data = { 'text': text, 'token': self.api_token }) + + if r.status_code != 200: + message = self.__get_error_message(r) + raise FlipdotGschichtlerError(endpoint, r.status_code, message) + + def delete_announcement(self): + if self.api_token == None: + raise FlipdotGschichtlerNoToken + + endpoint = '/api/v2/announcement' + r = requests.delete(self.base_url + endpoint, data = { 'token': self.api_token }) + + if r.status_code != 204: + message = self.__get_error_message(r) + raise FlipdotGschichtlerError(endpoint, r.status_code, message) |