40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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)
|