diff --git a/src/equipment/__pycache__/router.cpython-311.pyc b/src/equipment/__pycache__/router.cpython-311.pyc index 38447dd..9848851 100644 Binary files a/src/equipment/__pycache__/router.cpython-311.pyc and b/src/equipment/__pycache__/router.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/schema.cpython-311.pyc b/src/equipment/__pycache__/schema.cpython-311.pyc index d720932..4ff4eb5 100644 Binary files a/src/equipment/__pycache__/schema.cpython-311.pyc and b/src/equipment/__pycache__/schema.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/service.cpython-311.pyc b/src/equipment/__pycache__/service.cpython-311.pyc index 25ccb9b..c045e2e 100644 Binary files a/src/equipment/__pycache__/service.cpython-311.pyc and b/src/equipment/__pycache__/service.cpython-311.pyc differ diff --git a/src/equipment/router.py b/src/equipment/router.py index 5b773d9..cd04937 100644 --- a/src/equipment/router.py +++ b/src/equipment/router.py @@ -2,8 +2,14 @@ from typing import List, Optional from fastapi import APIRouter, HTTPException, status, Query from .model import Equipment, MasterRecords -from .schema import EquipmentPagination, EquipmentRead, EquipmentCreate, EquipmentUpdate -from .service import get, get_all, create, update, delete +from .schema import ( + 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.core import DbSession @@ -43,7 +49,7 @@ async def get_equipment_tree(): @router.get("/{assetnum}", response_model=StandardResponse[EquipmentRead]) async def get_equipment(db_session: DbSession, assetnum: str): 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]) 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( 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") -@router.put("/{equipment_id}", response_model=StandardResponse[EquipmentRead]) +@router.put("/{equipment_id}", response_model=StandardResponse[EquipmentUpdate]) async def update_equipment( db_session: DbSession, equipment_id: str, equipment_in: EquipmentUpdate, 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: 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): - 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: raise HTTPException( diff --git a/src/equipment/schema.py b/src/equipment/schema.py index 9f20047..d337adc 100644 --- a/src/equipment/schema.py +++ b/src/equipment/schema.py @@ -7,6 +7,7 @@ from src.models import DefaultBase, Pagination class EquipmentBase(DefaultBase): + assetnum: Optional[str] = Field(None, nullable=True) acquisition_year: Optional[int] = Field(None, nullable=True) acquisition_cost: Optional[float] = Field(None, nullable=True) capital_cost_record_time: Optional[int] = Field(None, nullable=True) @@ -82,7 +83,7 @@ class EquipmentRead(DefaultBase): class EquipmentDataMaster(EquipmentBase): - assetnum: Optional[str] = Field(None, nullable=True) + id: UUID forecasting_target_year: Optional[int] = Field(None, nullable=True) min_eac_info: Optional[str] = Field(None, nullable=True) harga_saat_ini: Optional[float] = Field(None, nullable=True) diff --git a/src/equipment/service.py b/src/equipment/service.py index 0faaea0..e35e224 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -11,7 +11,7 @@ from src.database.core import DbSession from src.auth.service import CurrentUser -async def get( +async def get_master_by_assetnum( *, db_session: DbSession, assetnum: str ) -> tuple[list[MasterRecords], float | None]: """Returns master records with equipment data based on asset number.""" @@ -57,6 +57,13 @@ async def get( # 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( *, db_session: DbSession, items_per_page: int, search: str = None, common ) -> list[Equipment]: