def delete(self, path, **kwargs): r = self.session.delete(self.endpoint + path, **kwargs) body = encode_unicode(r.text) if r.status_code == 401: self.login() r = self.session.delete(self.endpoint + path, **kwargs) if r.status_code == 200: return r.json() error = u'Request failed to {} - {} {}'.format(path, r, body).encode("utf-8") raise RuntimeError(error)
def put(self, path, **kwargs): kwargs['headers'] = kwargs.get('headers', {}) kwargs['headers'].update({'content-type': 'application/json'}) r = self.session.put(self.endpoint + path, **kwargs) body = encode_unicode(r.text) if r.status_code == 401: self.login() r = self.session.put(self.endpoint + path, **kwargs) if r.status_code in (200, 204): return r.json() error = u'Request failed to {} - {} {}'.format(path, r, body).encode("utf-8") raise RuntimeError(error)
def post(self, path, data=None, **kwargs): kwargs['headers'] = kwargs.get('headers', {}) kwargs['headers'].update({'content-type': 'application/json'}) r = self.session.post(self.endpoint + path, data, **kwargs) body = encode_unicode(r.text) if r.status_code == 401 and not path.startswith('/login'): self.login() r = self.session.post(self.endpoint + path, data, **kwargs) elif r.status_code == 200: return r.json() error = u'Request failed to {} - {} {}'.format(path, r, body).encode("utf-8") raise RuntimeError(error)