39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
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)
|