Добавил API настроек проекта
Этот коммит содержится в:
@@ -1,7 +1,12 @@
|
||||
from fastapi import APIRouter
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from pydantic import BaseModel
|
||||
|
||||
from backend.projects_registry import load_projects, save_project
|
||||
from backend.projects_registry import (
|
||||
find_project_by_workspace,
|
||||
load_projects,
|
||||
save_project,
|
||||
update_project_settings,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix='/api/projects', tags=['projects'])
|
||||
|
||||
@@ -13,6 +18,11 @@ class ProjectRegistryRequest(BaseModel):
|
||||
stack: str | None = None
|
||||
|
||||
|
||||
class ProjectSettingsRequest(BaseModel):
|
||||
workspace: str
|
||||
settings: dict
|
||||
|
||||
|
||||
@router.get('/list')
|
||||
async def projects_list():
|
||||
return {
|
||||
@@ -34,3 +44,27 @@ async def register_project(payload: ProjectRegistryRequest):
|
||||
'success': True,
|
||||
'projects': projects,
|
||||
}
|
||||
|
||||
|
||||
@router.get('/settings')
|
||||
async def project_settings(workspace: str):
|
||||
project = find_project_by_workspace(workspace)
|
||||
if not project:
|
||||
raise HTTPException(status_code=404, detail='Project not found')
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'project': project,
|
||||
}
|
||||
|
||||
|
||||
@router.post('/settings')
|
||||
async def save_project_settings(payload: ProjectSettingsRequest):
|
||||
project = update_project_settings(payload.workspace, payload.settings)
|
||||
if not project:
|
||||
raise HTTPException(status_code=404, detail='Project not found')
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'project': project,
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user