You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
from typing import Annotated, List, Optional
|
|
|
|
from src.models import StandardResponse
|
|
from .service import get_all_master, get_master
|
|
from fastapi import APIRouter, HTTPException, Query, status
|
|
from .schema import EquipmentMasterPaginated, EquipmentMasterQuery, EquipmentMasterRead
|
|
from src.database.service import search_filter_sort_paginate, CommonParameters
|
|
from src.database.core import DbSession
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("", response_model=StandardResponse[EquipmentMasterPaginated])
|
|
async def get_all_equipment_master_tree(
|
|
db_session: DbSession,
|
|
common: CommonParameters,
|
|
params: Annotated[EquipmentMasterQuery, Query()],
|
|
):
|
|
equipment_masters = await get_all_master(
|
|
parent_id=params.parent_id,
|
|
search=params.search,
|
|
items_per_page=params.items_per_page,
|
|
db_session=db_session,
|
|
common=common,
|
|
)
|
|
|
|
return StandardResponse(
|
|
data=equipment_masters, message="Data retrieved successfully"
|
|
)
|
|
|
|
@router.get("/export-all", response_model=StandardResponse[EquipmentMasterPaginated])
|
|
async def get_all_equipment_master_tree_export_all(
|
|
db_session: DbSession,
|
|
common: CommonParameters,
|
|
):
|
|
common["all"] = True
|
|
equipment_masters = await get_all_master(
|
|
db_session=db_session,
|
|
common=common,
|
|
)
|
|
|
|
return StandardResponse(
|
|
data=equipment_masters, message="All Equipment Master Data retrieved successfully"
|
|
)
|
|
|
|
|
|
@router.get(
|
|
"/{equipment_master_id}", response_model=StandardResponse[EquipmentMasterRead]
|
|
)
|
|
async def get_equipment_master_tree(db_session: DbSession, equipment_master_id: str):
|
|
equipment_master = await get_master(
|
|
db_session=db_session, equipment_master_id=equipment_master_id
|
|
)
|
|
|
|
if not equipment_master:
|
|
raise HTTPException(
|
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
detail="A data with this id does not exist.",
|
|
)
|
|
|
|
return StandardResponse(
|
|
data=equipment_master, message="Data retrieved successfully"
|
|
)
|