1- from fastapi import FastAPI
2- from .routers .user import router
3- from .database import engine
1+ from fastapi import FastAPI , HTTPException , Depends
2+ from sqlalchemy .orm import Session
3+ from database import get_db
4+ from models import User
5+ from schema import UserCreate , UserUpdate
6+
47
58
69app = FastAPI ()
710
8- app .include_router (router )
911
10- #===========================#
12+ @app .get ("/users/" )
13+ def get_all_users (db : Session = Depends (get_db )):
14+ return db .query (User ).all ()
15+
16+ @app .get ("/users/{user_id}" )
17+ def get_user_by_email (user_id : int , db : Session = Depends (get_db )):
18+ user = db .query (User ).filter (User .id == user_id ).first ()
19+ if user :
20+ return user
21+ raise HTTPException (status_code = 404 , detail = "User not found" )
22+
23+
24+ @app .post ("/users/" )
25+ def create_user (user : UserCreate , db : Session = Depends (get_db )):
26+ db_user = User (name = user .name , email = user .email , password = user .password )
27+ db .add (db_user )
28+ db .commit ()
29+ db .refresh (db_user )
30+ return db_user
1131
12- @app .on_event ("startup" )
13- async def startup ():
14- await engine .connect ()
15-
32+ @app .put ("/users/{user_id}" )
33+ def update_user_by_email (user_id : int , user : UserUpdate , db : Session = Depends (get_db )):
34+ db_user = db .query (User ).filter (User .id == user_id ).first ()
35+ if not db_user :
36+ raise HTTPException (status_code = 404 , detail = "User not found" )
37+ db_user .name = user .name
38+ db_user .email = user .email
39+ db .commit ()
40+ return {"message" : "User updated successfully" }
1641
17- @app .on_event ("shutdown" )
18- async def shutdown ():
19- await engine .disconnect ()
42+ @app .delete ("/users/{user_id}" )
43+ def delete_user_by_email (user_id : int , db : Session = Depends (get_db )):
44+ db_user = db .query (User ).filter (User .id == user_id ).first ()
45+ if not db_user :
46+ raise HTTPException (status_code = 404 , detail = "User not found" )
47+ db .delete (db_user )
48+ db .commit ()
49+ return {"message" : "User deleted successfully" }
0 commit comments