1+ import structlog
12from fastapi import APIRouter , Depends , HTTPException
23from sqlalchemy .orm import Session
34
45from app .api .deps import get_db , get_current_user
56from app .schemas .request import Request , RequestCreate , RequestUpdate
67from app .schemas .user import User
78from app .crud import request as crud_request
9+ from app .crud import url as crud_url
810
911router = APIRouter ()
12+ logger = structlog .get_logger ()
1013
1114
1215@router .get ("/read" , response_model = Request )
@@ -17,7 +20,9 @@ def read_request(
1720):
1821 request = crud_request .get_request_by_id (db , request_id , user .id )
1922 if not request :
23+ logger .info ("Request not found" , request_id = request_id )
2024 raise HTTPException (status_code = 404 , detail = "Request Not Found" )
25+ logger .info ("Retrieved request" , request_id = request_id , user_id = user .id )
2126 return request
2227
2328
@@ -27,14 +32,20 @@ def create_request(
2732 user : User = Depends (get_current_user ),
2833 db : Session = Depends (get_db ),
2934):
30- db_request = crud_request .get_request (
31- db = db , user_id = user .id , endpoint = request .endpoint
35+ db_url = crud_url .get_url (db , request .url , user .id )
36+ if not db_url :
37+ db_url = crud_url .create_url (db , request .url , user .id )
38+ logger .info (f"Created url for { request .url } " , url_id = db_url .id )
39+ request = crud_request .create_request (
40+ db = db , request = request , user_id = user .id , url_id = str (db_url .id )
3241 )
33- if db_request :
34- raise HTTPException (
35- status_code = 400 , detail = "Endpoint already registered"
36- )
37- return crud_request .create_request (db = db , request = request , user_id = user .id )
42+ logger .info (
43+ "Created request" ,
44+ request_id = request .id ,
45+ url_id = db_url .id ,
46+ user_id = user .id ,
47+ )
48+ return request
3849
3950
4051@router .put ("/update" , response_model = Request )
@@ -47,7 +58,13 @@ def update_request(
4758 crud_request .update_request (db , request_in , request_id , user .id )
4859 updated_request = crud_request .get_request_by_id (db , request_id , user .id )
4960 if not updated_request :
61+ logger .warning (
62+ "Request not found for updating" ,
63+ request_id = request_id ,
64+ user_id = user .id ,
65+ )
5066 raise HTTPException (status_code = 404 , detail = "Request Not Found" )
67+ logger .info ("Updated request" , request_id = request_id , user_id = user .id )
5168 return updated_request
5269
5370
@@ -59,6 +76,12 @@ def delete_request(
5976):
6077 request = crud_request .get_request_by_id (db , request_id , user .id )
6178 if not request :
79+ logger .warning (
80+ "Request not found for deleting" ,
81+ request_id = request_id ,
82+ user_id = user .id ,
83+ )
6284 raise HTTPException (status_code = 404 , detail = "Request Not Found" )
6385 crud_request .delete_request (db , request )
86+ logger .info ("Deleted request" , request_id = request_id , user_id = user .id )
6487 return request
0 commit comments