From 4f4dac9c8c863646a8292a9a2db53c0651d96b37 Mon Sep 17 00:00:00 2001 From: Hassan Abouelela <47495861+HassanAbouelela@users.noreply.github.com> Date: Mon, 15 Mar 2021 02:14:21 +0300 Subject: Adds Logging For Routes Adds logging for most routes, to make it easier to debug the routes, and keep a better record of major changes. Most operations would not get logged, except the beginning of a more sensitive operation, especially ones that require admin permissions. Signed-off-by: Hassan Abouelela <47495861+HassanAbouelela@users.noreply.github.com> --- backend/routes/forms/response.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'backend/routes/forms/response.py') diff --git a/backend/routes/forms/response.py b/backend/routes/forms/response.py index d8d8d17..97d74c1 100644 --- a/backend/routes/forms/response.py +++ b/backend/routes/forms/response.py @@ -1,6 +1,8 @@ """ Returns or deletes form response by ID. """ +import logging + from spectree import Response as RouteResponse from starlette.authentication import requires from starlette.requests import Request @@ -10,6 +12,8 @@ from backend.models import FormResponse from backend.route import Route from backend.validation import ErrorMessage, OkayResponse, api +logger = logging.getLogger(__name__) + class Response(Route): """Get or delete single form response by ID.""" @@ -42,14 +46,19 @@ class Response(Route): ) async def delete(self, request: Request) -> JSONResponse: """Delete a form response by ID.""" - if not await request.state.db.responses.find_one( - { - "_id": request.path_params["response_id"], - "form_id": request.path_params["form_id"] - } - ): + ids = { + "_id": request.path_params["response_id"], + "form_id": request.path_params["form_id"] + } + + logger.info( + f"Attempting to delete a response from {ids.get('form_id')} with ID: {ids.get('_id')}" + ) + + if not await request.state.db.responses.find_one(ids): return JSONResponse({"error": "not_found"}, status_code=404) + logger.debug("Executing deletion.") await request.state.db.responses.delete_one( {"_id": request.path_params["response_id"]} ) -- cgit v1.2.3