Skip to content

Commit 30085eb

Browse files
committed
Support non-json response
1 parent 2338b74 commit 30085eb

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

labkey/unsupported/wiki.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def update_wiki(server_context, wiki_name, wiki_body, container_path=None):
4949
}
5050

5151
try:
52-
read_response = server_context.make_request(read_wiki_url, payload, headers=headers, method='GET')
52+
read_response = server_context.make_request(read_wiki_url, payload, headers=headers, method='GET',
53+
non_json_response=True)
5354
except SSLError as e:
5455
print("There was a problem while attempting to submit the read for the wiki page " + str(wiki_name) + " via the URL " + str(e.geturl()) + ". The HTTP response code was " + str(e.getcode()))
5556
print("The HTTP client error was: " + format(e))
@@ -99,7 +100,8 @@ def update_wiki(server_context, wiki_name, wiki_body, container_path=None):
99100
wiki_vars['body'] = wiki_body
100101

101102
try:
102-
data = server_context.make_request(update_wiki_url, data=json.dumps(wiki_vars, sort_keys=True), headers=headers)
103+
data = server_context.make_request(update_wiki_url, payload=json.dumps(wiki_vars, sort_keys=True),
104+
headers=headers, non_json_response=True)
103105
except SSLError as e:
104106
print("There was a problem while attempting to submit the read for the wiki page '" + str(wiki_name) + "' via the URL " + str(e.geturl()) + ". The HTTP response code was " + str(e.getcode()))
105107
print("The HTTP client error was: " + format(e))

labkey/utils.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ def handle_request_exception(e, server_context=None):
7171
raise ServerContextError(server_context, e)
7272

7373

74-
def handle_response(response):
74+
def handle_response(response, non_json_response=False):
7575
sc = response.status_code
7676

7777
if (200 <= sc < 300) or sc == 304:
7878
try:
79+
if non_json_response:
80+
return response
7981
return response.json()
8082
except ValueError:
8183
result = dict(
@@ -89,6 +91,8 @@ def handle_response(response):
8991
raise RequestAuthorizationError(response)
9092
elif sc == 404:
9193
try:
94+
if non_json_response:
95+
return response
9296
response.json() # attempt to decode response
9397
raise QueryNotFoundError(response)
9498
except ValueError:
@@ -135,7 +139,7 @@ def build_url(self, controller, action, container_path=None):
135139

136140
return url
137141

138-
def make_request(self, url, payload, headers=None, timeout=300, method='POST'):
142+
def make_request(self, url, payload, headers=None, timeout=300, method='POST', non_json_response=False):
139143

140144
if self._api_key is not None:
141145
global API_KEY_TOKEN
@@ -164,6 +168,6 @@ def make_request(self, url, payload, headers=None, timeout=300, method='POST'):
164168
raw_response = self._session.get(url, params=payload, headers=headers, timeout=timeout)
165169
else:
166170
raw_response = self._session.post(url, data=payload, headers=headers, timeout=timeout)
167-
return handle_response(raw_response)
171+
return handle_response(raw_response, non_json_response)
168172
except RequestException as e:
169173
handle_request_exception(e, server_context=self)

0 commit comments

Comments
 (0)