Initial commit
This commit is contained in:
45
app/routers/stores.py
Normal file
45
app/routers/stores.py
Normal 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)}
|
||||
Reference in New Issue
Block a user