iBrokeTheCode's picture
chore: Add model UI files
459b8f5
from app import db
from app.auth.jwt import get_current_user
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from . import schema, services, validator
router = APIRouter(tags=["Users"], prefix="/user")
@router.post("/", status_code=status.HTTP_201_CREATED)
async def create_user_registration(
request: schema.User, database: Session = Depends(db.get_db)
):
# Verify the user email doesn't already exist
if await validator.verify_email_exist(email=request.email, database=database):
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST, detail="Email already registered"
)
# If the email doesn't exist, create a new user
new_user = await services.new_user_register(request=request, database=database)
return new_user
@router.get("/")
async def get_all_users(
database: Session = Depends(db.get_db),
current_user: schema.User = Depends(get_current_user),
):
return await services.all_users(database)
@router.get("/{id}", response_model=schema.DisplayUser)
async def get_user_by_id(
id: int,
database: Session = Depends(db.get_db),
current_user: schema.User = Depends(get_current_user),
):
return await services.get_user_by_id(id, database)
@router.delete("/{id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_user_by_id(
id: int,
database: Session = Depends(db.get_db),
current_user: schema.User = Depends(get_current_user),
):
return await services.delete_user_by_id(id, database)