Files
shanxia2.0/backend/app/api/pl/vehicle_fuel_card.py
T

54 lines
2.2 KiB
Python

"""车油卡台账 API。"""
from typing import Optional
from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.db_auth import DbUserContext, get_db_current_user
from app.core.menu_guard import require_menu_code
from app.core.tenant_context import get_tenant_no
from app.schemas.pl.vehicle_fuel_card import BatchDeleteBody, CreateBody, UpdateBody
from app.services import pl_vehicle_fuel_card_service as svc
router = APIRouter(
prefix="/transport/vehicle-fuel-card", tags=["车油卡信息"],
dependencies=[Depends(require_menu_code("pl:vehicle-fuel-card:list"))],
)
@router.get("")
def list_cards(q: Optional[str] = None, page: int = Query(1, ge=1),
page_size: int = Query(20, alias="pageSize", ge=1, le=500),
db: Session = Depends(get_db), user: DbUserContext = Depends(get_db_current_user)):
tenant = get_tenant_no(db, user.to_tenant_user_dict())
return svc.list_cards(db, tenant, user, q=q, page=page, page_size=page_size)
@router.post("")
def create_card(body: CreateBody, db: Session = Depends(get_db),
user: DbUserContext = Depends(get_db_current_user)):
tenant = get_tenant_no(db, user.to_tenant_user_dict())
return svc._row_to_dict(svc.create_card(db, tenant, user, body))
@router.post("/batch-delete")
def delete_cards(body: BatchDeleteBody, db: Session = Depends(get_db),
user: DbUserContext = Depends(get_db_current_user)):
tenant = get_tenant_no(db, user.to_tenant_user_dict())
return {"deleted": svc.delete_cards(db, tenant, user, body.ids)}
@router.get("/{record_id}")
def get_card(record_id: str, db: Session = Depends(get_db),
user: DbUserContext = Depends(get_db_current_user)):
tenant = get_tenant_no(db, user.to_tenant_user_dict())
return svc._row_to_dict(svc.get_card(db, tenant, user, record_id))
@router.put("/{record_id}")
def update_card(record_id: str, body: UpdateBody, db: Session = Depends(get_db),
user: DbUserContext = Depends(get_db_current_user)):
tenant = get_tenant_no(db, user.to_tenant_user_dict())
return svc._row_to_dict(svc.update_card(db, tenant, user, record_id, body))