24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends, Header
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from ..db.session import get_session
|
|
from ..services import runtime_crud
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/{entity}/records")
|
|
async def list_records(entity: str, authorization: str | None = Header(default=None), session: AsyncSession = Depends(get_session)):
|
|
return await runtime_crud.list_records(session, entity)
|
|
|
|
@router.post("/{entity}/records")
|
|
async def create_record(entity: str, payload: dict, authorization: str | None = Header(default=None), session: AsyncSession = Depends(get_session)):
|
|
return await runtime_crud.create_record(session, entity, payload)
|
|
|
|
@router.patch("/{entity}/records/{record_id}")
|
|
async def update_record(entity: str, record_id: str, payload: dict, authorization: str | None = Header(default=None), session: AsyncSession = Depends(get_session)):
|
|
return await runtime_crud.update_record(session, entity, record_id, payload)
|
|
|
|
@router.delete("/{entity}/records/{record_id}")
|
|
async def delete_record(entity: str, record_id: str, authorization: str | None = Header(default=None), session: AsyncSession = Depends(get_session)):
|
|
await runtime_crud.delete_record(session, entity, record_id)
|
|
return {"status": "deleted"}
|