diff options
author | Victor Näslund <victor@sunet.se> | 2022-11-16 14:23:09 +0100 |
---|---|---|
committer | Victor Näslund <victor@sunet.se> | 2022-11-16 14:23:09 +0100 |
commit | 4a56b3aae4114db731eff725e2c6292371a9b8ae (patch) | |
tree | 250f4dd1c4b9a0775867163a5edaee76638b261f /src/collector/main.py | |
parent | 6de5476ae2622fad5dc5c0d33e2b4bb9c3e9a6f1 (diff) |
Better status codes and error handling
Diffstat (limited to 'src/collector/main.py')
-rwxr-xr-x | src/collector/main.py | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/collector/main.py b/src/collector/main.py index 72c4ef7..a2d55c7 100755 --- a/src/collector/main.py +++ b/src/collector/main.py @@ -48,10 +48,7 @@ async def search(search_data: SearchInput) -> JSONResponse: """ data = await db.find(search_data) - if data is None: - return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=400) - - return JSONResponse(content={"status": "success", "docs": json_util.dumps(data)}) + return JSONResponse(content={"status": "success", "docs": data}) @app.post("/sc/v0") @@ -73,7 +70,7 @@ async def create(request: Request) -> JSONResponse: key = await db.insert_one(json_data) if key is None: - return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=500) return JSONResponse(content={"status": "success", "key": str(key)}) @@ -108,7 +105,7 @@ async def replace(request: Request) -> JSONResponse: # pylint: disable=too-many document = await db.find_one(object_id) if document is None: - return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=404) # Ensure valid schema del json_data["_id"] @@ -120,14 +117,14 @@ async def replace(request: Request) -> JSONResponse: # pylint: disable=too-many returned_object_id = await db.replace_one(object_id, json_data) if returned_object_id is None: - return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=500) return JSONResponse(content={"status": "success", "key": str(object_id)}) @app.get("/sc/v0/{key}") async def get(key: str) -> JSONResponse: - """/sc/v0, GET method + """/sc/v0/{key}, GET method :param key: The document key in the database. :return: JSONResponse @@ -136,14 +133,14 @@ async def get(key: str) -> JSONResponse: document = await db.find_one(ObjectId(key)) if document is None: - return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=404) - return JSONResponse(content={"status": "success", "docs": json_util.dumps(document)}) + return JSONResponse(content={"status": "success", "doc": document}) @app.delete("/sc/v0/{key}") async def delete(key: str) -> JSONResponse: - """/sc/v0, DELETE method + """/sc/v0/{key}, DELETE method :param key: The document key in the database. :return: JSONResponse @@ -151,7 +148,7 @@ async def delete(key: str) -> JSONResponse: result = await db.delete_one(ObjectId(key)) if result is None: - return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "Document not found"}, status_code=404) return JSONResponse(content={"status": "success", "key": str(key)}) @@ -166,6 +163,6 @@ async def info() -> JSONResponse: count = await db.estimated_document_count() if count is None: - return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=400) + return JSONResponse(content={"status": "error", "message": "DB error"}, status_code=500) return JSONResponse(content={"status": "success", "Estimated document count": count}) |