From d0762eb20dfba437376c9a8879524cac0ee9ce7e Mon Sep 17 00:00:00 2001 From: Thomas Maschler Date: Thu, 4 Apr 2024 23:08:46 -0400 Subject: [PATCH] add responses to transactions --- .../extensions/core/transaction.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/stac_fastapi/extensions/stac_fastapi/extensions/core/transaction.py b/stac_fastapi/extensions/stac_fastapi/extensions/core/transaction.py index 8e30ec872..2f7f81ff3 100644 --- a/stac_fastapi/extensions/stac_fastapi/extensions/core/transaction.py +++ b/stac_fastapi/extensions/stac_fastapi/extensions/core/transaction.py @@ -5,6 +5,7 @@ import attr from fastapi import APIRouter, Body, FastAPI from stac_pydantic import Collection, Item, ItemCollection +from stac_pydantic.shared import MimeTypes from starlette.responses import JSONResponse, Response from stac_fastapi.api.models import CollectionUri, ItemUri @@ -63,7 +64,16 @@ def register_create_item(self): self.router.add_api_route( name="Create Item", path="/collections/{collection_id}/items", + status_code=201, response_model=Item if self.settings.enable_response_models else None, + responses={ + 201: { + "content": { + MimeTypes.geojson.value: {}, + }, + "model": Item, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True, @@ -78,6 +88,14 @@ def register_update_item(self): name="Update Item", path="/collections/{collection_id}/items/{item_id}", response_model=Item if self.settings.enable_response_models else None, + responses={ + 200: { + "content": { + MimeTypes.geojson.value: {}, + }, + "model": Item, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True, @@ -92,6 +110,14 @@ def register_delete_item(self): name="Delete Item", path="/collections/{collection_id}/items/{item_id}", response_model=Item if self.settings.enable_response_models else None, + responses={ + 200: { + "content": { + MimeTypes.geojson.value: {}, + }, + "model": Item, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True, @@ -104,7 +130,16 @@ def register_create_collection(self): self.router.add_api_route( name="Create Collection", path="/collections", + status_code=201, response_model=Collection if self.settings.enable_response_models else None, + responses={ + 201: { + "content": { + MimeTypes.json.value: {}, + }, + "model": Collection, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True, @@ -118,6 +153,14 @@ def register_update_collection(self): name="Update Collection", path="/collections", response_model=Collection if self.settings.enable_response_models else None, + responses={ + 200: { + "content": { + MimeTypes.json.value: {}, + }, + "model": Collection, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True, @@ -131,6 +174,14 @@ def register_delete_collection(self): name="Delete Collection", path="/collections/{collection_id}", response_model=Collection if self.settings.enable_response_models else None, + responses={ + 200: { + "content": { + MimeTypes.json.value: {}, + }, + "model": Collection, + } + }, response_class=self.response_class, response_model_exclude_unset=True, response_model_exclude_none=True,