File size: 1,231 Bytes
46730ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | """
MCP Tool: Delete a task
"""
from typing import Dict, Any, Optional
from pydantic import BaseModel
class DeleteTaskInput(BaseModel):
task_id: int
class DeleteTaskOutput(BaseModel):
success: bool
task_deleted: Optional[bool] = None
error: Optional[str] = None
async def delete_task(input: DeleteTaskInput, context: Dict[str, Any]) -> DeleteTaskOutput:
"""
MCP Tool: Delete a task
Args:
input: DeleteTaskInput with task_id
context: MCP context containing user_id
Returns:
DeleteTaskOutput with success status
"""
try:
user_id = context.get("user_id")
if not user_id:
return DeleteTaskOutput(success=False, error="User ID not found in context")
from backend.src.services.task_service import TaskService
from backend.src.core.database import get_session
async with get_session() as session:
success = TaskService.delete_task(
session,
task_id=input.task_id,
user_id=user_id
)
return DeleteTaskOutput(success=success, task_deleted=True)
except Exception as e:
return DeleteTaskOutput(success=False, error=str(e)) |