from fastapi import APIRouter, Depends from typing import List from app.services.case import CaseService from app.models.case import CaseCreate, CaseUpdate router = APIRouter(prefix="/cases", tags=["Cases"]) def get_case_service(): return CaseService() @router.get("/") async def list_cases(case_service: CaseService = Depends(get_case_service)): return await case_service.list_cases() @router.post("/") async def create_case(case_data: CaseCreate, case_service: CaseService = Depends(get_case_service)): return await case_service.create_case(case_data) @router.get("/{case_id}") async def get_case(case_id: str, case_service: CaseService = Depends(get_case_service)): return await case_service.get_case(case_id) @router.put("/{case_id}") async def update_case(case_id: str, data: CaseUpdate, case_service: CaseService = Depends(get_case_service)): return await case_service.update_case(case_id, data) @router.delete("/{case_id}") async def delete_case(case_id: str, case_service: CaseService = Depends(get_case_service)): return await case_service.delete_case(case_id) @router.post("/{case_id}/open") async def open_case( case_id: str, username: str, server_ip: str, case_service: CaseService = Depends(get_case_service) ): return await case_service.open_case(username=username, case_id=case_id, server_ip=server_ip)