events imports are checked
This commit is contained in:
98
service_app/routers/application/enums_and_drops/router.py
Normal file
98
service_app/routers/application/enums_and_drops/router.py
Normal file
@@ -0,0 +1,98 @@
|
||||
from fastapi import status
|
||||
from fastapi.routing import APIRouter
|
||||
from fastapi.exceptions import HTTPException
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from databases import ApiEnumDropdown
|
||||
from api_validations.validations_request import (
|
||||
SingleEnumClassKey,
|
||||
SingleEnumUUID,
|
||||
SingleEnumOnlyClass,
|
||||
)
|
||||
|
||||
|
||||
enums_route = APIRouter(prefix="/enums", tags=["Enums and Dropdowns of API"])
|
||||
enums_route.include_router(enums_route, include_in_schema=False)
|
||||
|
||||
|
||||
@enums_route.post(path="/get/key", summary="Get single enum via key")
|
||||
def get_single_enum_via_key_and_class(data: SingleEnumClassKey):
|
||||
enum = ApiEnumDropdown.query.filter(
|
||||
ApiEnumDropdown.enum_class.ilike(data.class_name),
|
||||
ApiEnumDropdown.key.ilike(data.key_name),
|
||||
).populate_existing()
|
||||
if record := enum.first():
|
||||
return JSONResponse(
|
||||
content={
|
||||
"completed": True,
|
||||
"message": "Get single enum via key",
|
||||
"data": record.get_enum_dict() if enum else None,
|
||||
},
|
||||
status_code=status.HTTP_200_OK,
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Enum not found",
|
||||
)
|
||||
|
||||
|
||||
@enums_route.post(path="/get/uu_id", summary="Get single enum via uu_id")
|
||||
def get_single_enum_via_uuid(data: SingleEnumUUID):
|
||||
enum = ApiEnumDropdown.query.filter(
|
||||
ApiEnumDropdown.uu_id == data.uu_id
|
||||
).populate_existing()
|
||||
if records := enum.first():
|
||||
return JSONResponse(
|
||||
content={
|
||||
"completed": True,
|
||||
"message": "Get single enum via uu_id",
|
||||
"data": records.get_enum_dict(),
|
||||
},
|
||||
status_code=status.HTTP_200_OK,
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Enum not found",
|
||||
)
|
||||
|
||||
|
||||
@enums_route.post(path="/list/class", summary="Get all enums via class")
|
||||
def list_all_enums_with_class(data: SingleEnumOnlyClass):
|
||||
enums = ApiEnumDropdown.query.filter(
|
||||
ApiEnumDropdown.enum_class.ilike(data.class_name or "")
|
||||
).populate_existing()
|
||||
if records := enums.all():
|
||||
records_list = [record.get_enum_dict() for record in records]
|
||||
return JSONResponse(
|
||||
content={
|
||||
"completed": True,
|
||||
"message": "Get all enums via class",
|
||||
"count": len(records_list),
|
||||
"data": records_list,
|
||||
},
|
||||
status_code=status.HTTP_200_OK,
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Enums not found",
|
||||
)
|
||||
|
||||
|
||||
@enums_route.post(path="/list/all", summary="Get all enums")
|
||||
def list_all_enums():
|
||||
enums = ApiEnumDropdown.query.filter().populate_existing()
|
||||
if records := enums.all():
|
||||
records_list = [record.get_enum_dict() for record in records]
|
||||
return JSONResponse(
|
||||
content={
|
||||
"completed": True,
|
||||
"count": len(records_list),
|
||||
"message": "Get all enums",
|
||||
"data": records_list,
|
||||
},
|
||||
status_code=status.HTTP_200_OK,
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Enums can not be listed",
|
||||
)
|
||||
Reference in New Issue
Block a user