fix: Equipment Data Id schema, Update and Delete

main
MrWaradana 1 year ago
parent 1e030b29a7
commit 2291188346

@ -2,8 +2,14 @@ from typing import List, Optional
from fastapi import APIRouter, HTTPException, status, Query from fastapi import APIRouter, HTTPException, status, Query
from .model import Equipment, MasterRecords from .model import Equipment, MasterRecords
from .schema import EquipmentPagination, EquipmentRead, EquipmentCreate, EquipmentUpdate from .schema import (
from .service import get, get_all, create, update, delete EquipmentBase,
EquipmentPagination,
EquipmentRead,
EquipmentCreate,
EquipmentUpdate,
)
from .service import get_master_by_assetnum, get_by_id, get_all, create, update, delete
from src.database.service import CommonParameters, search_filter_sort_paginate from src.database.service import CommonParameters, search_filter_sort_paginate
from src.database.core import DbSession from src.database.core import DbSession
@ -43,7 +49,7 @@ async def get_equipment_tree():
@router.get("/{assetnum}", response_model=StandardResponse[EquipmentRead]) @router.get("/{assetnum}", response_model=StandardResponse[EquipmentRead])
async def get_equipment(db_session: DbSession, assetnum: str): async def get_equipment(db_session: DbSession, assetnum: str):
equipment_master_record, equipment_data, chart_data, min_eac_value, min_seq = ( equipment_master_record, equipment_data, chart_data, min_eac_value, min_seq = (
await get(db_session=db_session, assetnum=assetnum) await get_master_by_assetnum(db_session=db_session, assetnum=assetnum)
) )
# raise Exception(equipment[0]) # raise Exception(equipment[0])
if not chart_data: if not chart_data:
@ -64,7 +70,7 @@ async def get_equipment(db_session: DbSession, assetnum: str):
) )
@router.post("", response_model=StandardResponse[EquipmentRead]) @router.post("", response_model=StandardResponse[EquipmentCreate])
async def create_equipment( async def create_equipment(
db_session: DbSession, equipment_in: EquipmentCreate, current_user: CurrentUser db_session: DbSession, equipment_in: EquipmentCreate, current_user: CurrentUser
): ):
@ -74,14 +80,14 @@ async def create_equipment(
return StandardResponse(data=equipment, message="Data created successfully") return StandardResponse(data=equipment, message="Data created successfully")
@router.put("/{equipment_id}", response_model=StandardResponse[EquipmentRead]) @router.put("/{equipment_id}", response_model=StandardResponse[EquipmentUpdate])
async def update_equipment( async def update_equipment(
db_session: DbSession, db_session: DbSession,
equipment_id: str, equipment_id: str,
equipment_in: EquipmentUpdate, equipment_in: EquipmentUpdate,
current_user: CurrentUser, current_user: CurrentUser,
): ):
equipment = await get(db_session=db_session, equipment_id=equipment_id) equipment = await get_by_id(db_session=db_session, equipment_id=equipment_id)
if not equipment: if not equipment:
raise HTTPException( raise HTTPException(
@ -98,9 +104,9 @@ async def update_equipment(
) )
@router.delete("/{equipment_id}", response_model=StandardResponse[EquipmentRead]) @router.delete("/{equipment_id}", response_model=StandardResponse[EquipmentBase])
async def delete_equipment(db_session: DbSession, equipment_id: str): async def delete_equipment(db_session: DbSession, equipment_id: str):
equipment = await get(db_session=db_session, equipment_id=equipment_id) equipment = await get_by_id(db_session=db_session, equipment_id=equipment_id)
if not equipment: if not equipment:
raise HTTPException( raise HTTPException(

@ -7,6 +7,7 @@ from src.models import DefaultBase, Pagination
class EquipmentBase(DefaultBase): class EquipmentBase(DefaultBase):
assetnum: Optional[str] = Field(None, nullable=True)
acquisition_year: Optional[int] = Field(None, nullable=True) acquisition_year: Optional[int] = Field(None, nullable=True)
acquisition_cost: Optional[float] = Field(None, nullable=True) acquisition_cost: Optional[float] = Field(None, nullable=True)
capital_cost_record_time: Optional[int] = Field(None, nullable=True) capital_cost_record_time: Optional[int] = Field(None, nullable=True)
@ -82,7 +83,7 @@ class EquipmentRead(DefaultBase):
class EquipmentDataMaster(EquipmentBase): class EquipmentDataMaster(EquipmentBase):
assetnum: Optional[str] = Field(None, nullable=True) id: UUID
forecasting_target_year: Optional[int] = Field(None, nullable=True) forecasting_target_year: Optional[int] = Field(None, nullable=True)
min_eac_info: Optional[str] = Field(None, nullable=True) min_eac_info: Optional[str] = Field(None, nullable=True)
harga_saat_ini: Optional[float] = Field(None, nullable=True) harga_saat_ini: Optional[float] = Field(None, nullable=True)

@ -11,7 +11,7 @@ from src.database.core import DbSession
from src.auth.service import CurrentUser from src.auth.service import CurrentUser
async def get( async def get_master_by_assetnum(
*, db_session: DbSession, assetnum: str *, db_session: DbSession, assetnum: str
) -> tuple[list[MasterRecords], float | None]: ) -> tuple[list[MasterRecords], float | None]:
"""Returns master records with equipment data based on asset number.""" """Returns master records with equipment data based on asset number."""
@ -57,6 +57,13 @@ async def get(
# return result.scalars().all() # return result.scalars().all()
async def get_by_id(*, db_session: DbSession, equipment_id: str) -> Optional[Equipment]:
"""Returns a document based on the given document id."""
query = Select(Equipment).filter(Equipment.id == equipment_id)
result = await db_session.execute(query)
return result.scalars().one_or_none()
async def get_all( async def get_all(
*, db_session: DbSession, items_per_page: int, search: str = None, common *, db_session: DbSession, items_per_page: int, search: str = None, common
) -> list[Equipment]: ) -> list[Equipment]:

Loading…
Cancel
Save