diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-10-16 21:43:55 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-10-16 21:43:55 +0300 |
commit | 726d37ff1b253bf18e845e0f16fb4877d53e2fa2 (patch) | |
tree | 6b8b3afd360c77a377b03ee237c4741368491722 /icktool | |
parent | 24d2e51e13a4e707f454ca1946786427044aa346 (diff) | |
download | ick2-726d37ff1b253bf18e845e0f16fb4877d53e2fa2.tar.gz |
Add: icktool update-project
Diffstat (limited to 'icktool')
-rwxr-xr-x | icktool | 33 |
1 files changed, 28 insertions, 5 deletions
@@ -96,9 +96,21 @@ class Icktool(cliapp.Application): def cmd_create_project(self, args): obj = self._read_object() - self._prettyson(obj) api = self._new_api() - api.post('/projects', obj) + code, text = api.post('/projects', obj) + if code != 201: + sys.stderr.write('HTTP status {}\n'.format(code)) + sys.stderr.write(text) + sys.exit(1) + + def cmd_update_project(self, args): + obj = self._read_object() + api = self._new_api() + code, text = api.put('/projects/{}'.format(obj['project']), obj) + if code != 200: + sys.stderr.write('HTTP status {}\n'.format(code)) + sys.stderr.write(text) + sys.exit(1) def _new_token(self): scopes = self.settings['scope'] @@ -161,11 +173,22 @@ class API: full_url = '{}{}'.format(self._url, path) headers = { 'Authorization': 'Bearer {}'.format(self._token), - 'Content-Type': 'applicatin/json', } r = requests.post( - full_url, data=obj, headers=headers, verify=self._verify) - print(r.text) + full_url, json=obj, headers=headers, verify=self._verify) + return r.status_code, r.text + + def put(self, path, obj): + assert self._url is not None + assert self._token is not None + + full_url = '{}{}'.format(self._url, path) + headers = { + 'Authorization': 'Bearer {}'.format(self._token), + } + r = requests.put( + full_url, json=obj, headers=headers, verify=self._verify) + return r.status_code, r.text class TokenGenerator: |