-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathuser_router.py
51 lines (34 loc) · 1.41 KB
/
user_router.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from auth.services.auth_service import get_current_active_user
from core.database import get_db
from user.models.user import User
from user.schemas.user import UserSchema, UserCreate
from user.services.user_service import get_users, create_user, get_user, delete_user
user_router = APIRouter(
prefix='/users',
tags=['Users']
)
@user_router.get('/', response_model=list[UserSchema])
def user_list(db: Session = Depends(get_db)):
db_users = get_users(db)
return db_users
@user_router.get('/me', response_model=UserSchema)
def user_list(current_user: User = Depends(get_current_active_user)):
return current_user
@user_router.get('/{user_id}', response_model=UserSchema)
def user_detail(user_id: int, db: Session = Depends(get_db)):
db_user = get_user(db, user_id)
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
return db_user
@user_router.delete('/{user_id}')
def user_delete(user_id: int, db: Session = Depends(get_db)):
db_user = get_user(db, user_id)
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
delete_user(db, db_user.id)
return {"message": "User deleted"}
@user_router.post("/", response_model=UserSchema)
def user_post(user: UserCreate, db:Session = Depends(get_db)):
return create_user(db, user)