Skip to content
This repository was archived by the owner on Aug 11, 2020. It is now read-only.

Commit b9fb404

Browse files
committed
enveloped response handling
1 parent 9ae08de commit b9fb404

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

paperspace/exceptions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,13 @@ class PresignedUrlConnectionError(ApplicationError):
2222
pass
2323

2424

25+
class PresignedUrlMalformedResponseError(ApplicationError):
26+
pass
27+
28+
29+
class PresignedUrlError(ApplicationError):
30+
pass
31+
32+
2533
class S3UploadFailedError(ApplicationError):
2634
pass

paperspace/workspace.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from paperspace import logger as default_logger
1010

1111
from paperspace.exceptions import S3UploadFailedError, PresignedUrlUnreachableError, \
12-
PresignedUrlAccessDeniedError, PresignedUrlConnectionError, ProjectAccessDeniedError
12+
PresignedUrlAccessDeniedError, PresignedUrlConnectionError, ProjectAccessDeniedError, \
13+
PresignedUrlMalformedResponseError, PresignedUrlError
1314

1415

1516
class S3WorkspaceHandler:
@@ -143,4 +144,13 @@ def _get_upload_data(self, file_name, project_handle):
143144
raise PresignedUrlUnreachableError
144145
if not response.ok:
145146
raise PresignedUrlConnectionError(response.reason)
146-
return response.json()
147+
148+
response_content = response.json()
149+
try:
150+
response_message = response_content['message']
151+
response_data = response_content['data']
152+
except KeyError:
153+
raise PresignedUrlMalformedResponseError(response_data)
154+
if response_message != 'success':
155+
raise PresignedUrlError(response)
156+
return response_data

0 commit comments

Comments
 (0)