Перед тем, как исправлять выгрузку скуд с глупым Gemini-Lite
This commit is contained in:
@@ -3,19 +3,20 @@
|
||||
FILE: modules/web_api/routers/tasks.py
|
||||
PROJECT: SCUD Orion AI (Unified Architecture)
|
||||
MODULE: web_api / routers
|
||||
ROLE: REST API эндпоинты реестра задач (получение, создание и обновление).
|
||||
ROLE: REST API эндпоинты реестра задач.
|
||||
===============================================================================
|
||||
"""
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, Dict, Any
|
||||
|
||||
from routers.auth import get_current_user
|
||||
from llm.db_tools import db_get_tasks, db_add_task, db_update_task_details
|
||||
from services.tasks.service import get_tasks, add_task, update_task_details
|
||||
|
||||
router = APIRouter(prefix="/api/v1/tasks", tags=["Tasks"])
|
||||
|
||||
|
||||
class TaskCreateRequest(BaseModel):
|
||||
title: str
|
||||
priority: Optional[str] = "MEDIUM"
|
||||
@@ -23,6 +24,7 @@ class TaskCreateRequest(BaseModel):
|
||||
due_date: Optional[str] = None
|
||||
status: Optional[str] = "BACKLOG"
|
||||
|
||||
|
||||
class TaskUpdateRequest(BaseModel):
|
||||
title: Optional[str] = None
|
||||
priority: Optional[str] = None
|
||||
@@ -31,7 +33,6 @@ class TaskUpdateRequest(BaseModel):
|
||||
|
||||
|
||||
def resolve_user_id(current_user: Dict[str, Any]) -> int:
|
||||
"""Извлекает корректный ID пользователя из JWT payload или ставит дефолтный 1."""
|
||||
if not current_user:
|
||||
return 1
|
||||
return current_user.get("id") or current_user.get("user_id") or 1
|
||||
@@ -40,13 +41,13 @@ def resolve_user_id(current_user: Dict[str, Any]) -> int:
|
||||
@router.get("")
|
||||
async def get_tasks_endpoint(status: Optional[str] = None, current_user = Depends(get_current_user)):
|
||||
user_id = resolve_user_id(current_user)
|
||||
return {"tasks": db_get_tasks(user_id=user_id, status=status)}
|
||||
return {"tasks": get_tasks(user_id=user_id, status=status)}
|
||||
|
||||
|
||||
@router.post("")
|
||||
async def create_task_endpoint(req: TaskCreateRequest, current_user = Depends(get_current_user)):
|
||||
user_id = resolve_user_id(current_user)
|
||||
res = db_add_task(
|
||||
res = add_task(
|
||||
user_id=user_id,
|
||||
module=req.module,
|
||||
title=req.title,
|
||||
@@ -62,7 +63,7 @@ async def create_task_endpoint(req: TaskCreateRequest, current_user = Depends(ge
|
||||
@router.patch("/{task_id}")
|
||||
async def update_task_endpoint(task_id: str, req: TaskUpdateRequest, current_user = Depends(get_current_user)):
|
||||
user_id = resolve_user_id(current_user)
|
||||
res = db_update_task_details(
|
||||
res = update_task_details(
|
||||
user_id=user_id,
|
||||
task_id=task_id,
|
||||
title=req.title,
|
||||
|
||||
Reference in New Issue
Block a user