Skip to content

Commit 5c8da5b

Browse files
committed
fix(DetailedResponse): Add status_code to DetailedResponse
1 parent 08b5496 commit 5c8da5b

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

examples/tone_analyzer_v3.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
print(tone)
6666
print(tone.get_headers())
6767
print(tone.get_result())
68+
print(tone.get_status_code())
6869
tone_analyzer.set_detailed_response(False)
6970

7071
print("\ntone() example 7:\n")

watson_developer_cloud/watson_service.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,23 +177,30 @@ class DetailedResponse(object):
177177
178178
:param Response response: Either json response or http Response as requested.
179179
:param dict headers: A dict of response headers
180+
:param str status_code: HTTP response code
180181
"""
181-
def __init__(self, response=None, headers=None):
182+
def __init__(self, response=None, headers=None, status_code=None):
182183
self.result = response
183184
self.headers = headers
185+
self.status_code = status_code
184186

185187
def get_result(self):
186188
return self.result
187189

188190
def get_headers(self):
189191
return self.headers
190192

193+
def get_status_code(self):
194+
return self.status_code
195+
191196
def _to_dict(self):
192197
_dict = {}
193198
if hasattr(self, 'result') and self.result is not None:
194199
_dict['result'] = self.result if isinstance(self.result, dict) else 'HTTP response'
195200
if hasattr(self, 'headers') and self.headers is not None:
196201
_dict['headers'] = self.headers
202+
if hasattr(self, 'status_code') and self.status_code is not None:
203+
_dict['status_code'] = self.status_code
197204
return _dict
198205

199206
def __str__(self):
@@ -442,7 +449,7 @@ def request(self, method, url, accept_json=False, headers=None,
442449

443450
if 200 <= response.status_code <= 299:
444451
if response.status_code == 204:
445-
return DetailedResponse(None, response.headers) if self.detailed_response else None
452+
return DetailedResponse(None, response.headers, response.status_code) if self.detailed_response else None
446453
if accept_json:
447454
response_json = response.json()
448455
if 'status' in response_json and response_json['status'] \
@@ -455,8 +462,8 @@ def request(self, method, url, accept_json=False, headers=None,
455462
if error_message == 'invalid-api-key':
456463
status_code = 401
457464
raise WatsonApiException(status_code, error_message, httpResponse=response)
458-
return DetailedResponse(response_json, response.headers) if self.detailed_response else response_json
459-
return DetailedResponse(response, response.headers) if self.detailed_response else response
465+
return DetailedResponse(response_json, response.headers, response.status_code) if self.detailed_response else response_json
466+
return DetailedResponse(response, response.headers, response.status_code) if self.detailed_response else response
460467
else:
461468
if response.status_code == 401:
462469
error_message = 'Unauthorized: Access is denied due to ' \

0 commit comments

Comments
 (0)