77from sqlmodel import func , select
88
99from app .api .deps import CurrentUser , SessionDep
10+ from app .constants import BAD_REQUEST_CODE , NOT_FOUND_CODE
1011from app .models import Item , ItemCreate , ItemPublic , ItemsPublic , ItemUpdate , Message
1112
1213router = APIRouter (prefix = "/items" , tags = ["items" ])
@@ -24,7 +25,7 @@ def read_items(
2425 count_statement = select (func .count ()).select_from (Item )
2526 count = session .exec (count_statement ).one ()
2627 statement = select (Item ).offset (skip ).limit (limit )
27- items = session .exec (statement ).all ()
28+ item_list = session .exec (statement ).all ()
2829 else :
2930 count_statement = (
3031 select (func .count ())
@@ -38,22 +39,22 @@ def read_items(
3839 .offset (skip )
3940 .limit (limit )
4041 )
41- items = session .exec (statement ).all ()
42+ item_list = session .exec (statement ).all ()
4243
43- return ItemsPublic (data = items , count = count )
44+ return ItemsPublic (item_data = item_list , count = count )
4445
4546
4647@router .get ("/{item_id}" )
4748def read_item (
4849 session : SessionDep , current_user : CurrentUser , item_id : uuid .UUID ,
4950) -> ItemPublic :
5051 """Get item by ID."""
51- item = session .get (Item , item_id )
52- if not item :
53- raise HTTPException (status_code = 404 , detail = "Item not found" )
54- if not current_user .is_superuser and (item .owner_id != current_user .id ):
55- raise HTTPException (status_code = 400 , detail = "Not enough permissions" )
56- return ItemPublic .model_validate (item )
52+ db_item = session .get (Item , item_id )
53+ if not db_item :
54+ raise HTTPException (status_code = NOT_FOUND_CODE , detail = "Item not found" )
55+ if not current_user .is_superuser and (db_item .owner_id != current_user .id ):
56+ raise HTTPException (status_code = BAD_REQUEST_CODE , detail = "Not enough permissions" )
57+ return ItemPublic .model_validate (db_item )
5758
5859
5960@router .post ("/" )
@@ -64,11 +65,11 @@ def create_item(
6465 item_in : ItemCreate ,
6566) -> ItemPublic :
6667 """Create new item."""
67- item = Item .model_validate (item_in , update = {"owner_id" : current_user .id })
68- session .add (item )
68+ db_item = Item .model_validate (item_in , update = {"owner_id" : current_user .id })
69+ session .add (db_item )
6970 session .commit ()
70- session .refresh (item )
71- return ItemPublic .model_validate (item )
71+ session .refresh (db_item )
72+ return ItemPublic .model_validate (db_item )
7273
7374
7475@router .put ("/{item_id}" )
@@ -80,17 +81,17 @@ def update_item(
8081 item_in : ItemUpdate ,
8182) -> ItemPublic :
8283 """Update an item."""
83- item = session .get (Item , item_id )
84- if not item :
85- raise HTTPException (status_code = 404 , detail = "Item not found" )
86- if not current_user .is_superuser and (item .owner_id != current_user .id ):
87- raise HTTPException (status_code = 400 , detail = "Not enough permissions" )
84+ db_item = session .get (Item , item_id )
85+ if not db_item :
86+ raise HTTPException (status_code = NOT_FOUND_CODE , detail = "Item not found" )
87+ if not current_user .is_superuser and (db_item .owner_id != current_user .id ):
88+ raise HTTPException (status_code = BAD_REQUEST_CODE , detail = "Not enough permissions" )
8889 update_dict = item_in .model_dump (exclude_unset = True )
89- item .sqlmodel_update (update_dict )
90- session .add (item )
90+ db_item .sqlmodel_update (update_dict )
91+ session .add (db_item )
9192 session .commit ()
92- session .refresh (item )
93- return ItemPublic .model_validate (item )
93+ session .refresh (db_item )
94+ return ItemPublic .model_validate (db_item )
9495
9596
9697@router .delete ("/{item_id}" )
@@ -100,11 +101,11 @@ def delete_item(
100101 item_id : uuid .UUID ,
101102) -> Message :
102103 """Delete an item."""
103- item = session .get (Item , item_id )
104- if not item :
105- raise HTTPException (status_code = 404 , detail = "Item not found" )
106- if not current_user .is_superuser and (item .owner_id != current_user .id ):
107- raise HTTPException (status_code = 400 , detail = "Not enough permissions" )
108- session .delete (item )
104+ db_item = session .get (Item , item_id )
105+ if not db_item :
106+ raise HTTPException (status_code = NOT_FOUND_CODE , detail = "Item not found" )
107+ if not current_user .is_superuser and (db_item .owner_id != current_user .id ):
108+ raise HTTPException (status_code = BAD_REQUEST_CODE , detail = "Not enough permissions" )
109+ session .delete (db_item )
109110 session .commit ()
110111 return Message (message = "Item deleted successfully" )
0 commit comments