diff options
author | 2020-12-13 14:19:41 +0200 | |
---|---|---|
committer | 2020-12-13 14:19:41 +0200 | |
commit | 1270adfaf2225faaf2134e2a5de088d121c52a04 (patch) | |
tree | 8206392d55e04ceb79ae079f7767982edb2ea837 | |
parent | Merge pull request #18 from python-discord/ks123/form-name-description (diff) |
Create route for showing single form response
-rw-r--r-- | backend/routes/forms/response.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/backend/routes/forms/response.py b/backend/routes/forms/response.py new file mode 100644 index 0000000..4466c21 --- /dev/null +++ b/backend/routes/forms/response.py @@ -0,0 +1,27 @@ +""" +Returns single from response by ID. +""" +from starlette.authentication import requires +from starlette.requests import Request +from starlette.responses import JSONResponse + +from backend.models import FormResponse +from backend.route import Route + + +class Response(Route): + """Get single form response by ID.""" + + name = "response" + path = "/responses/{response_id:str}" + + @requires(["authenticated", "admin"]) + async def get(self, request: Request) -> JSONResponse: + """Returns single form response by ID.""" + if raw_response := await request.state.db.responses.find_one( + {"_id": request.path_params["response_id"]} + ): + response = FormResponse(**raw_response) + return JSONResponse(response.dict()) + else: + return JSONResponse({"error": "not_found"}, status_code=404) |