diff --git a/src/overhaul_schedule/router.py b/src/overhaul_schedule/router.py index b90ebf8..0425baa 100644 --- a/src/overhaul_schedule/router.py +++ b/src/overhaul_schedule/router.py @@ -7,8 +7,8 @@ from src.database.core import DbSession from src.database.service import CommonParameters from src.models import StandardResponse -from .schema import (OverhaulScheduleCreate, OverhaulSchedulePagination) -from .service import create, get_all +from .schema import (OverhaulScheduleCreate, OverhaulSchedulePagination, OverhaulScheduleUpdate) +from .service import create, get_all, delete, update router = APIRouter() @@ -42,12 +42,22 @@ async def create_overhaul_equipment_jobs( message="Data created successfully", ) +@router.put("/{overhaul_job_id}", response_model=StandardResponse[None]) +async def update_overhaul_schedule( + db_session: DbSession, overhaul_job_id: str, overhaul_job_in: OverhaulScheduleUpdate +): + await update(db_session=db_session, overhaul_schedule_id=overhaul_job_id, overhaul_job_in=overhaul_job_in) + + return StandardResponse( + data=None, + message="Data updated successfully", + ) -# @router.delete("/{overhaul_job_id}", response_model=StandardResponse[None]) -# async def delete_overhaul_equipment_job(db_session: DbSession, overhaul_job_id): -# await delete(db_session=db_session, overhaul_job_id=overhaul_job_id) +@router.delete("/{overhaul_job_id}", response_model=StandardResponse[None]) +async def delete_overhaul_equipment_job(db_session: DbSession, overhaul_job_id): + await delete(db_session=db_session, overhaul_schedule_id=overhaul_job_id) -# return StandardResponse( -# data=None, -# message="Data deleted successfully", -# ) + return StandardResponse( + data=None, + message="Data deleted successfully", + ) diff --git a/src/overhaul_schedule/schema.py b/src/overhaul_schedule/schema.py index c4da65e..e14e866 100644 --- a/src/overhaul_schedule/schema.py +++ b/src/overhaul_schedule/schema.py @@ -24,7 +24,8 @@ class OverhaulScheduleCreate(OverhaulScheduleBase): class OverhaulScheduleUpdate(OverhaulScheduleBase): - pass + start: datetime + finish: datetime class OverhaulScheduleRead(OverhaulScheduleBase): diff --git a/src/overhaul_schedule/service.py b/src/overhaul_schedule/service.py index d4d2a3d..4ea9d37 100644 --- a/src/overhaul_schedule/service.py +++ b/src/overhaul_schedule/service.py @@ -11,7 +11,7 @@ from src.scope_equipment_job.model import ScopeEquipmentJob from src.overhaul_activity.model import OverhaulActivity from .model import OverhaulSchedule -from .schema import OverhaulScheduleCreate +from .schema import OverhaulScheduleCreate, OverhaulScheduleUpdate async def get_all(*, common): @@ -33,63 +33,25 @@ async def create( return schedule -# async def delete( -# *, -# db_session: DbSession, -# overhaul_job_id: str, -# ) -> bool: -# """ -# Deletes a scope job and returns success status. -# Args: -# db_session: Database session -# scope_job_id: ID of the scope job to delete -# user_id: ID of user performing the deletion +async def update(*, db_session: DbSession, overhaul_schedule_id: str, overhaul_job_in: OverhaulScheduleUpdate): + """Updates a document.""" + data = overhaul_job_in.model_dump() + overhaul_schedule = await db_session.get(OverhaulSchedule, overhaul_schedule_id) -# Returns: -# bool: True if deletion was successful, False otherwise + update_data = overhaul_job_in.model_dump(exclude_defaults=True) -# Raises: -# NotFoundException: If scope job doesn't exist -# AuthorizationError: If user lacks delete permission -# """ -# try: -# # Check if job exists -# scope_job = await db_session.get(OverhaulJob, overhaul_job_id) -# if not scope_job: -# raise HTTPException( -# status_code=status.HTTP_404_NOT_FOUND, -# detail="A data with this id does not exist.", -# ) + for field in data: + if field in update_data: + setattr(overhaul_schedule, field, update_data[field]) -# # Perform deletion -# await db_session.delete(scope_job) -# await db_session.commit() - -# return True - -# except Exception as e: -# await db_session.rollback() -# raise - - -# async def update(*, db_session: DbSession, scope: OverhaulScope, scope_in: ScopeUpdate): -# """Updates a document.""" -# data = scope_in.model_dump() - -# update_data = scope_in.model_dump(exclude_defaults=True) - -# for field in data: -# if field in update_data: -# setattr(scope, field, update_data[field]) - -# await db_session.commit() + await db_session.commit() -# return scope + return overhaul_schedule -# async def delete(*, db_session: DbSession, scope_id: str): -# """Deletes a document.""" -# query = Delete(OverhaulScope).where(OverhaulScope.id == scope_id) -# await db_session.execute(query) -# await db_session.commit() +async def delete(*, db_session: DbSession, overhaul_schedule_id: str): + """Deletes a document.""" + query = Delete(OverhaulSchedule).where(OverhaulSchedule.id == overhaul_schedule_id) + await db_session.execute(query) + await db_session.commit()