| 1234567891011121314151617181920212223242526 |
- from fastapi import APIRouter, Depends, HTTPException, status
- from typing import Annotated, Any
- from app.db.session import get_db
- from app.schemas import UserCreate, UserResponse
- from app.crud import get_user_by_username, create_user
- from app.api.deps import get_current_user
- router = APIRouter()
- @router.post("/", response_model=UserResponse)
- def create_new_user(user: UserCreate, db: Any = Depends(get_db)):
- db_user = get_user_by_username(db, username=user.username)
- if db_user:
- raise HTTPException(status_code=400, detail="Username already registered")
- return create_user(db=db, user=user.model_copy(update={"role": "user"}))
- @router.get("/me", response_model=UserResponse)
- def read_users_me(current_user: Annotated[Any, Depends(get_current_user)]):
- return current_user
- @router.get("/{username}", response_model=UserResponse)
- def read_user(username: str, db: Any = Depends(get_db)):
- db_user = get_user_by_username(db, username=username)
- if db_user is None:
- raise HTTPException(status_code=404, detail="User not found")
- return db_user
|