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 .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(

@ -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)

@ -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]:

Loading…
Cancel
Save