From fbd31d2fe5b466dabb0fb941fc23b4fb18d50e13 Mon Sep 17 00:00:00 2001 From: Oittaa Date: Tue, 15 Mar 2022 15:46:34 +0100 Subject: [PATCH] Refactor `insert` error handling --- gcp_storage_emulator/handlers/objects.py | 86 +++++++++++------------- 1 file changed, 38 insertions(+), 48 deletions(-) diff --git a/gcp_storage_emulator/handlers/objects.py b/gcp_storage_emulator/handlers/objects.py index dd46b39..bbd523a 100644 --- a/gcp_storage_emulator/handlers/objects.py +++ b/gcp_storage_emulator/handlers/objects.py @@ -173,20 +173,15 @@ def _media_upload(request, response, storage): content_type, str(len(request.data)), ) - try: - obj = _checksums(request.data, obj) - storage.create_file( - request.params["bucket_name"], - object_id, - request.data, - obj, - ) + obj = _checksums(request.data, obj) + storage.create_file( + request.params["bucket_name"], + object_id, + request.data, + obj, + ) - response.json(obj) - except NotFound: - response.status = HTTPStatus.NOT_FOUND - except Conflict as err: - _handle_conflict(response, err) + response.json(obj) def _multipart_upload(request, response, storage): @@ -203,20 +198,15 @@ def _multipart_upload(request, response, storage): str(len(request.data["content"])), request.data["meta"], ) - try: - obj = _checksums(request.data["content"], obj) - storage.create_file( - request.params["bucket_name"], - object_id, - request.data["content"], - obj, - ) + obj = _checksums(request.data["content"], obj) + storage.create_file( + request.params["bucket_name"], + object_id, + request.data["content"], + obj, + ) - response.json(obj) - except NotFound: - response.status = HTTPStatus.NOT_FOUND - except Conflict as err: - _handle_conflict(response, err) + response.json(obj) def _create_resumable_upload(request, response, storage): @@ -239,22 +229,17 @@ def _create_resumable_upload(request, response, storage): content_type, content_length, ) - try: - id = storage.create_resumable_upload( - request.params["bucket_name"], - object_id, - obj, - ) - encoded_id = urllib.parse.urlencode( - { - "upload_id": id, - } - ) - response["Location"] = request.full_url + "&{}".format(encoded_id) - except NotFound: - response.status = HTTPStatus.NOT_FOUND - except Conflict as err: - _handle_conflict(response, err) + id = storage.create_resumable_upload( + request.params["bucket_name"], + object_id, + obj, + ) + encoded_id = urllib.parse.urlencode( + { + "upload_id": id, + } + ) + response["Location"] = request.full_url + "&{}".format(encoded_id) def _delete(storage, bucket_name, object_id): @@ -309,14 +294,19 @@ def insert(request, response, storage, *args, **kwargs): uploadType = uploadType[0] - if uploadType == "media": - return _media_upload(request, response, storage) + try: + if uploadType == "media": + return _media_upload(request, response, storage) - if uploadType == "resumable": - return _create_resumable_upload(request, response, storage) + if uploadType == "resumable": + return _create_resumable_upload(request, response, storage) - if uploadType == "multipart": - return _multipart_upload(request, response, storage) + if uploadType == "multipart": + return _multipart_upload(request, response, storage) + except NotFound: + response.status = HTTPStatus.NOT_FOUND + except Conflict as err: + _handle_conflict(response, err) def upload_partial(request, response, storage, *args, **kwargs):