Newer
Older
safe-algo-pro / apis / device_model_realtion.py
zhangyingjie 24 days ago 1 KB 服务拆分(过程版本)
from typing import List, Optional

from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession

from apis.base import StandardResponse, standard_response
from db.database import get_db
from entity.device_model_relation import DeviceModelRelationInfo, DeviceModelRelationCreate, DeviceModelRelation
from services.device_model_relation_service import DeviceModelRelationService

# from app_instance import get_app

router = APIRouter()
# app = get_app()


# def get_service():
#     return app.state.model_relation_service


@router.get("/list_by_device", response_model=StandardResponse[List[DeviceModelRelationInfo]])
async def list_by_device(
        device_id: int,
        db: AsyncSession = Depends(get_db)):
    service = DeviceModelRelationService(db)
    models = await service.get_device_models(device_id)
    return standard_response(data=list(models))


@router.post("/update_by_device", response_model=StandardResponse[List[DeviceModelRelation]])
async def update_by_device(relation_data: List[DeviceModelRelationCreate],
                           device_id: int = Query(...),
                           db: AsyncSession = Depends(get_db)):
    service = DeviceModelRelationService(db)
    relations = await service.update_relations_by_device(device_id, relation_data)
    return standard_response(data=relations)