Initial travel knowledge graph release
This commit is contained in:
43
app/api/source_profiles.py
Normal file
43
app/api/source_profiles.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""STEP 01 — Source Profiles CRUD."""
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
|
||||
from app.auth import CurrentUser
|
||||
from app.config import settings
|
||||
from app.contracts import SourceProfileCreate, SourceProfileUpdate
|
||||
from app.db import list_source_profiles, create_source_profile, update_source_profile
|
||||
from app.project_context import ProjectContext, get_project_context
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/source-profiles")
|
||||
async def _list(
|
||||
tenant_id: str | None = None,
|
||||
project_id: str | None = None,
|
||||
context: ProjectContext = Depends(get_project_context),
|
||||
_user: CurrentUser = None,
|
||||
):
|
||||
return await list_source_profiles(
|
||||
tenant_id or context.tenant_id,
|
||||
project_id or context.project_id,
|
||||
)
|
||||
|
||||
|
||||
@router.post("/source-profiles")
|
||||
async def _create(
|
||||
body: SourceProfileCreate,
|
||||
context: ProjectContext = Depends(get_project_context),
|
||||
_user: CurrentUser = None,
|
||||
):
|
||||
data = body.model_dump()
|
||||
data.setdefault("tenant_id", context.tenant_id)
|
||||
data.setdefault("project_id", context.project_id)
|
||||
return await create_source_profile(data)
|
||||
|
||||
|
||||
@router.patch("/source-profiles/{profile_id}")
|
||||
async def _update(profile_id: int, body: SourceProfileUpdate, _user: CurrentUser):
|
||||
row = await update_source_profile(profile_id, body.model_dump(exclude_none=True))
|
||||
if not row:
|
||||
raise HTTPException(404, "Source profile not found")
|
||||
return row
|
||||
Reference in New Issue
Block a user