from fastapi import APIRouter, Depends, HTTPException, Header from typing import List from ..schemas.table_info import TableCreateRequest, TableResponse from ..services.admin_table_service import ( create_table, delete_table, update_table, list_tables_service ) router = APIRouter() def get_token(authorization: str = Header(...)): if authorization.startswith("Bearer "): return authorization[7:] return authorization @router.post("/tables/create", response_model=dict) def create_table_api(request: TableCreateRequest): return create_table( token=request.token, table_data=request.dict(exclude={"token"}) ) @router.delete("/tables/{table_id}", response_model=dict) def delete_table_api(table_id: int, token: str = Depends(get_token)): return delete_table(token, table_id) @router.put("/tables/{table_id}", response_model=dict) def update_table_api(table_id: int, request: TableCreateRequest, token: str = Depends(get_token)): return update_table( token=token, table_id=table_id, table_data=request.dict(exclude={"token"}) ) @router.get("/tables", response_model=List[TableResponse]) def list_tables_api(token: str = Depends(get_token)): return list_tables_service(token)