alumni_network/app/api/v1/endpoints/users.py

44 lines
1.0 KiB
Python

from typing import Any
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from app import crud
from app.api import deps
from app.schemas.user import User, UserCreate
router = APIRouter()
@router.get("/{user_id}", response_model=User)
def read_user(
user_id: int,
db: Session = Depends(deps.get_db),
current_user: User = Depends(deps.get_current_user)
) -> Any:
"""
Get user by ID.
"""
user = crud.user.get_user(db, user_id=user_id)
if user is None:
raise HTTPException(
status_code=404,
detail="User not found"
)
return user
@router.post("/", response_model=User)
def create_user(
*,
db: Session = Depends(deps.get_db),
user_in: UserCreate,
) -> Any:
"""
Create new user.
"""
user = crud.user.get_user_by_email(db, email=user_in.email)
if user:
raise HTTPException(
status_code=400,
detail="Email already registered"
)
user = crud.user.create_user(db, user=user_in)
return user