Newer
Older
safe-algo-pro / apis / device_model_realtion.py
zhangyingjie on 6 Nov 1 KB 增加场景运行脚本和任务
from typing import List, Optional

from fastapi import APIRouter, Depends, Query
from sqlmodel import Session

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.device_model_relation_service


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


# @router.post("/add_by_device", response_model=StandardResponse[List[DeviceModelRelation]])
# def add_by_device(relation_data: List[DeviceModelRelationCreate],
#                   device_id: int = Query(...),
#                   db: Session = Depends(get_db)):
#     service = DeviceModelRelationService(db)
#     relations = service.add_relations_by_device(device_id, relation_data)
#     return standard_response(data=relations)


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

# @router.delete("/delete_by_device", response_model=StandardResponse[int])
# def delete_device(device_id: int, db: Session = Depends(get_db)):
#     service = DeviceModelRelationService(db)
#     count = service.delete_relations_by_device(device_id)
#     return standard_response(data=count)