Initial commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
from fastapi import Query, APIRouter, status, Depends, Response, HTTPException
|
||||
from backend.code.modules.users.controller import UserController
|
||||
|
||||
from backend.code.models.requests.user_register import UserRegisterRequest
|
||||
from backend.code.models.requests.user_edit import UserEditRequest
|
||||
from backend.code.models.responses.user_detail import UserDetailResponse
|
||||
from backend.code.models.responses.user_created import UserCreatedResponse
|
||||
|
||||
routes = APIRouter(prefix="/users", tags=["User"])
|
||||
controller = UserController()
|
||||
|
||||
@routes.get('', status_code = status.HTTP_200_OK, response_model = list[UserDetailResponse])
|
||||
def ListUsers(params: str | None = Query(default = None, alias = "query")):
|
||||
users = controller.ListUsers(params)
|
||||
if users is None:
|
||||
raise HTTPException(status_code = status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if len(users) == 0:
|
||||
return Response(status_code = status.HTTP_204_NO_CONTENT)
|
||||
|
||||
return users
|
||||
|
||||
@routes.get('/{id}', status_code = status.HTTP_200_OK, response_model = UserDetailResponse)
|
||||
def GetUser(id: int):
|
||||
user = controller.SelectUser(id)
|
||||
if user is None:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
|
||||
return user
|
||||
|
||||
@routes.post('', status_code = status.HTTP_201_CREATED, response_model = UserCreatedResponse)
|
||||
def RegisterUser(data: UserRegisterRequest):
|
||||
created = controller.RegisterUser(data.Name, data.Surnames, data.Email, data.Username, data.Locked, data.Active)
|
||||
if created is None:
|
||||
raise HTTPException(status_code = status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if created == -1:
|
||||
raise HTTPException(status_code = status.HTTP_409_CONFLICT, detail = 'Email exists')
|
||||
elif created == -2:
|
||||
raise HTTPException(status_code = status.HTTP_409_CONFLICT, detail = 'Username exists')
|
||||
|
||||
return created
|
||||
|
||||
@routes.put('/{id}', status_code = status.HTTP_204_NO_CONTENT)
|
||||
def EditUser(id: int, data: UserEditRequest):
|
||||
edited = controller.EditUser(id, data.Name, data.Surnames, data.Email)
|
||||
if edited is None:
|
||||
raise HTTPException(status_code = status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if deleted == -3:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
|
||||
@routes.delete('/{id}', status_code = status.HTTP_204_NO_CONTENT)
|
||||
def DeleteUser(id: int):
|
||||
deleted = controller.DeleteUser(id)
|
||||
if deleted is None:
|
||||
raise HTTPException(status_code = status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if deleted == -3:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
Reference in New Issue
Block a user