From e9ac227ee52ebf1f5f4b488f3a3521263443ce87 Mon Sep 17 00:00:00 2001 From: singhpranjali Date: Thu, 25 Aug 2022 17:17:57 +0200 Subject: [PATCH 1/3] fixed response type --- marketplace/app/v0/object_storage.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/marketplace/app/v0/object_storage.py b/marketplace/app/v0/object_storage.py index e86c4ec..7973e7c 100644 --- a/marketplace/app/v0/object_storage.py +++ b/marketplace/app/v0/object_storage.py @@ -44,12 +44,12 @@ def create_or_update_collection( self, metadata: dict = None, collection_name: object_storage.CollectionName = None, - ) -> str: + ): return self._client.put( self._proxy_path("createOrUpdateCollection"), params={"collection_name": collection_name} if collection_name else {}, headers=_encode_metadata(metadata), - ).text + ).json() @check_capability_availability def delete_collection(self, collection_name: object_storage.CollectionName): @@ -58,7 +58,6 @@ def delete_collection(self, collection_name: object_storage.CollectionName): params={"collection_name": collection_name}, ) - # NOTE: change to GET for the meeting if proxy doesn't support HEAD requests @check_capability_availability def get_collection_metadata( self, collection_name: object_storage.CollectionName @@ -74,12 +73,12 @@ def create_collection( self, collection_name: object_storage.CollectionName = None, metadata: dict = None, - ) -> str: + ): return self._client.put( self._proxy_path("createCollection"), params={"collection_name": collection_name} if collection_name else {}, headers=_encode_metadata(metadata), - ).text + ).json() @check_capability_availability def create_dataset( @@ -107,7 +106,7 @@ def create_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName = None, metadata: dict = None, - ) -> str: + ): params = {"collection_name": collection_name} if dataset_name: params.update({"dataset_name": dataset_name}) @@ -115,7 +114,7 @@ def create_dataset_metadata( self._proxy_path("createDatasetMetadata"), params=params, headers=_encode_metadata(metadata), - ).text + ).json() @check_capability_availability def get_dataset( @@ -153,12 +152,12 @@ def create_or_replace_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, metadata: dict = None, - ) -> str: + ): return self._client.put( self._proxy_path("createOrReplaceDatasetMetadata"), params={"collection_name": collection_name, "dataset_name": dataset_name}, headers=_encode_metadata(metadata), - ).text + ).json() @check_capability_availability def delete_dataset( From fb551ad4aef6b4f76b3601dfca4425ac65600ea1 Mon Sep 17 00:00:00 2001 From: singhpranjali Date: Fri, 26 Aug 2022 20:00:44 +0200 Subject: [PATCH 2/3] correct response models --- marketplace/app/v0/object_storage.py | 86 ++++++++++++++++------------ 1 file changed, 50 insertions(+), 36 deletions(-) diff --git a/marketplace/app/v0/object_storage.py b/marketplace/app/v0/object_storage.py index 7973e7c..d8b32ce 100644 --- a/marketplace/app/v0/object_storage.py +++ b/marketplace/app/v0/object_storage.py @@ -1,8 +1,7 @@ import json -from typing import Dict, Union import marketplace_standard_app_api.models.object_storage as object_storage -from fastapi import UploadFile +from fastapi import Response, UploadFile from ..utils import check_capability_availability from .base import _MarketPlaceAppBase @@ -44,12 +43,14 @@ def create_or_update_collection( self, metadata: dict = None, collection_name: object_storage.CollectionName = None, - ): - return self._client.put( - self._proxy_path("createOrUpdateCollection"), - params={"collection_name": collection_name} if collection_name else {}, - headers=_encode_metadata(metadata), - ).json() + ) -> Response: + return Response( + self._client.put( + self._proxy_path("createOrUpdateCollection"), + params={"collection_name": collection_name} if collection_name else {}, + headers=_encode_metadata(metadata), + ).json() + ) @check_capability_availability def delete_collection(self, collection_name: object_storage.CollectionName): @@ -61,24 +62,26 @@ def delete_collection(self, collection_name: object_storage.CollectionName): @check_capability_availability def get_collection_metadata( self, collection_name: object_storage.CollectionName - ) -> Union[Dict, str]: + ) -> Response: response_headers: dict = self._client.head( self._proxy_path("getCollectionMetadata"), params={"collection_name": collection_name}, ).headers - return json.dumps(_decode_metadata(headers=response_headers)) + return Response(json.dumps(_decode_metadata(headers=response_headers))) @check_capability_availability def create_collection( self, collection_name: object_storage.CollectionName = None, metadata: dict = None, - ): - return self._client.put( - self._proxy_path("createCollection"), - params={"collection_name": collection_name} if collection_name else {}, - headers=_encode_metadata(metadata), - ).json() + ) -> Response: + return Response( + self._client.put( + self._proxy_path("createCollection"), + params={"collection_name": collection_name} if collection_name else {}, + headers=_encode_metadata(metadata), + ).json() + ) @check_capability_availability def create_dataset( @@ -106,26 +109,33 @@ def create_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName = None, metadata: dict = None, - ): + ) -> Response: params = {"collection_name": collection_name} if dataset_name: params.update({"dataset_name": dataset_name}) - return self._client.post( - self._proxy_path("createDatasetMetadata"), - params=params, - headers=_encode_metadata(metadata), - ).json() + return Response( + self._client.post( + self._proxy_path("createDatasetMetadata"), + params=params, + headers=_encode_metadata(metadata), + ).json() + ) @check_capability_availability def get_dataset( self, collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, - ) -> Union[Dict, str]: - return self._client.get( - self._proxy_path("getDataset"), - params={"collection_name": collection_name, "dataset_name": dataset_name}, - ).json() + ) -> Response: + return Response( + self._client.get( + self._proxy_path("getDataset"), + params={ + "collection_name": collection_name, + "dataset_name": dataset_name, + }, + ).json() + ) def create_or_replace_dataset( self, @@ -152,12 +162,17 @@ def create_or_replace_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, metadata: dict = None, - ): - return self._client.put( - self._proxy_path("createOrReplaceDatasetMetadata"), - params={"collection_name": collection_name, "dataset_name": dataset_name}, - headers=_encode_metadata(metadata), - ).json() + ) -> Response: + return Response( + self._client.put( + self._proxy_path("createOrReplaceDatasetMetadata"), + params={ + "collection_name": collection_name, + "dataset_name": dataset_name, + }, + headers=_encode_metadata(metadata), + ).json() + ) @check_capability_availability def delete_dataset( @@ -170,18 +185,17 @@ def delete_dataset( params={"collection_name": collection_name, "dataset_name": dataset_name}, ) - # NOTE: change to GET for the meeting if proxy doesn't support HEAD requests @check_capability_availability def get_dataset_metadata( self, collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, - ) -> Union[Dict, str]: + ) -> Response: response_headers: dict = self._client.head( self._proxy_path("getDatasetMetadata"), params={"collection_name": collection_name, "dataset_name": dataset_name}, ).headers - return json.dumps(_decode_metadata(headers=response_headers)) + return Response(json.dumps(_decode_metadata(headers=response_headers))) @check_capability_availability def list_semantic_mappings( From 93800e6f115bf329730c712bb563e24cc63e22e4 Mon Sep 17 00:00:00 2001 From: singhpranjali Date: Thu, 8 Sep 2022 12:08:12 +0200 Subject: [PATCH 3/3] resturn json response when model not defined --- marketplace/app/v0/object_storage.py | 91 +++++++++++++--------------- 1 file changed, 41 insertions(+), 50 deletions(-) diff --git a/marketplace/app/v0/object_storage.py b/marketplace/app/v0/object_storage.py index d8b32ce..54bcbe2 100644 --- a/marketplace/app/v0/object_storage.py +++ b/marketplace/app/v0/object_storage.py @@ -1,7 +1,8 @@ import json +from typing import Dict, Union import marketplace_standard_app_api.models.object_storage as object_storage -from fastapi import Response, UploadFile +from fastapi import UploadFile from ..utils import check_capability_availability from .base import _MarketPlaceAppBase @@ -43,14 +44,12 @@ def create_or_update_collection( self, metadata: dict = None, collection_name: object_storage.CollectionName = None, - ) -> Response: - return Response( - self._client.put( - self._proxy_path("createOrUpdateCollection"), - params={"collection_name": collection_name} if collection_name else {}, - headers=_encode_metadata(metadata), - ).json() - ) + ) -> Union[Dict, str]: + return self._client.put( + self._proxy_path("createOrUpdateCollection"), + params={"collection_name": collection_name} if collection_name else {}, + headers=_encode_metadata(metadata), + ).json() @check_capability_availability def delete_collection(self, collection_name: object_storage.CollectionName): @@ -62,26 +61,24 @@ def delete_collection(self, collection_name: object_storage.CollectionName): @check_capability_availability def get_collection_metadata( self, collection_name: object_storage.CollectionName - ) -> Response: + ) -> Union[Dict, str]: response_headers: dict = self._client.head( self._proxy_path("getCollectionMetadata"), params={"collection_name": collection_name}, ).headers - return Response(json.dumps(_decode_metadata(headers=response_headers))) + return json.dumps(_decode_metadata(headers=response_headers)) @check_capability_availability def create_collection( self, collection_name: object_storage.CollectionName = None, metadata: dict = None, - ) -> Response: - return Response( - self._client.put( - self._proxy_path("createCollection"), - params={"collection_name": collection_name} if collection_name else {}, - headers=_encode_metadata(metadata), - ).json() - ) + ) -> Union[Dict, str]: + return self._client.put( + self._proxy_path("createCollection"), + params={"collection_name": collection_name} if collection_name else {}, + headers=_encode_metadata(metadata), + ).json() @check_capability_availability def create_dataset( @@ -109,33 +106,29 @@ def create_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName = None, metadata: dict = None, - ) -> Response: + ) -> Union[Dict, str]: params = {"collection_name": collection_name} if dataset_name: params.update({"dataset_name": dataset_name}) - return Response( - self._client.post( - self._proxy_path("createDatasetMetadata"), - params=params, - headers=_encode_metadata(metadata), - ).json() - ) + return self._client.post( + self._proxy_path("createDatasetMetadata"), + params=params, + headers=_encode_metadata(metadata), + ).json() @check_capability_availability def get_dataset( self, collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, - ) -> Response: - return Response( - self._client.get( - self._proxy_path("getDataset"), - params={ - "collection_name": collection_name, - "dataset_name": dataset_name, - }, - ).json() - ) + ) -> Union[Dict, str]: + return self._client.get( + self._proxy_path("getDataset"), + params={ + "collection_name": collection_name, + "dataset_name": dataset_name, + }, + ).json() def create_or_replace_dataset( self, @@ -162,17 +155,15 @@ def create_or_replace_dataset_metadata( collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, metadata: dict = None, - ) -> Response: - return Response( - self._client.put( - self._proxy_path("createOrReplaceDatasetMetadata"), - params={ - "collection_name": collection_name, - "dataset_name": dataset_name, - }, - headers=_encode_metadata(metadata), - ).json() - ) + ) -> Union[Dict, str]: + return self._client.put( + self._proxy_path("createOrReplaceDatasetMetadata"), + params={ + "collection_name": collection_name, + "dataset_name": dataset_name, + }, + headers=_encode_metadata(metadata), + ).json() @check_capability_availability def delete_dataset( @@ -190,12 +181,12 @@ def get_dataset_metadata( self, collection_name: object_storage.CollectionName, dataset_name: object_storage.DatasetName, - ) -> Response: + ) -> Union[Dict, str]: response_headers: dict = self._client.head( self._proxy_path("getDatasetMetadata"), params={"collection_name": collection_name, "dataset_name": dataset_name}, ).headers - return Response(json.dumps(_decode_metadata(headers=response_headers))) + return json.dumps(_decode_metadata(headers=response_headers)) @check_capability_availability def list_semantic_mappings(