from fastapi import APIRouter, HTTPException, Query, status from .service import get_all, create, get, update, delete from .schema import ScopeEquipmentActivityCreate, ScopeEquipmentActivityPagination, ScopeEquipmentActivityRead, ScopeEquipmentActivityUpdate from src.models import StandardResponse from src.database.service import CommonParameters, search_filter_sort_paginate, DbSession router = APIRouter() @router.get("", response_model=StandardResponse[ScopeEquipmentActivityPagination]) async def get_scope_equipment_activities(common: CommonParameters, assetnum: str = Query(None)): """Get all scope activity pagination.""" # return data = await get_all(common=common, assetnum=assetnum) return StandardResponse( data=data, message="Data retrieved successfully", ) @router.post("", response_model=StandardResponse[ScopeEquipmentActivityRead]) async def create_activity(db_session: DbSession, scope_equipment_activity_in: ScopeEquipmentActivityCreate): activity = await create(db_session=db_session, scope_equipment_activty_in=scope_equipment_activity_in) return StandardResponse(data=activity, message="Data created successfully") @router.get("/{scope_equipment_activity_id}", response_model=StandardResponse[ScopeEquipmentActivityRead]) async def get_activity(db_session: DbSession, scope_equipment_activity_id: str): activity = await get(db_session=db_session, scope_equipment_activity_id=scope_equipment_activity_id) if not activity: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="A data with this id does not exist.", ) return StandardResponse(data=activity, message="Data retrieved successfully") @router.put("/{scope_equipment_activity_id}", response_model=StandardResponse[ScopeEquipmentActivityRead]) async def update_scope(db_session: DbSession, scope_equipment_activity_in: ScopeEquipmentActivityUpdate, scope_equipment_activity_id): activity = await get(db_session=db_session, scope_equipment_activity_id=scope_equipment_activity_id) if not activity: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="A data with this id does not exist.", ) return StandardResponse(data=await update(db_session=db_session, activity=activity, scope_equipment_activity_in=scope_equipment_activity_in), message="Data updated successfully") @router.delete("/{scope_equipment_activity_id}", response_model=StandardResponse[ScopeEquipmentActivityRead]) async def delete_scope(db_session: DbSession, scope_equipment_activity_id: str): activity = await get(db_session=db_session, scope_equipment_activity_id=scope_equipment_activity_id) if not activity: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail=[{"msg": "A data with this id does not exist."}], ) await delete(db_session=db_session, scope_equipment_activity_id=scope_equipment_activity_id) return StandardResponse(message="Data deleted successfully", data=activity)