You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
3.0 KiB
Python
72 lines
3.0 KiB
Python
|
|
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)
|