| | 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) |
| | ): |
| | |
| | if await validator.verify_email_exist(email=request.email, database=database): |
| | raise HTTPException( |
| | status_code=status.HTTP_400_BAD_REQUEST, detail="Email already registered" |
| | ) |
| |
|
| | |
| | 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) |
| |
|