Initial commit

This commit is contained in:
root
2026-04-29 08:17:35 +00:00
commit ef55253cbd
49 changed files with 3073 additions and 0 deletions

45
app/routers/stores.py Normal file
View File

@@ -0,0 +1,45 @@
from fastapi import APIRouter, Depends, HTTPException
from app.auth import verify_api_key
from app.database import get_db
from app.models import StoreCreate, StoreResponse
router = APIRouter()
@router.post("", response_model=StoreResponse)
async def create_store(
body: StoreCreate,
user: dict = Depends(verify_api_key),
db=Depends(get_db)
):
store_id = await db.fetchval(
"INSERT INTO vector_stores (name, owner_user_id) VALUES ($1,$2) RETURNING id",
body.name, user["user_id"]
)
return StoreResponse(store_id=store_id, name=body.name)
@router.get("")
async def list_stores(
user: dict = Depends(verify_api_key),
db=Depends(get_db)
):
rows = await db.fetch(
"SELECT id, name, created_at FROM vector_stores WHERE owner_user_id=$1",
user["user_id"]
)
return [dict(r) for r in rows]
@router.delete("/{store_id}")
async def delete_store(
store_id: str,
user: dict = Depends(verify_api_key),
db=Depends(get_db)
):
deleted = await db.fetchval(
"""DELETE FROM vector_stores
WHERE id=$1 AND owner_user_id=$2
RETURNING id""",
store_id, user["user_id"]
)
if not deleted:
raise HTTPException(404, "Store not found or access denied")
return {"deleted": str(deleted)}