Newer
Older
safe-algo-pro / services / frame_analysis_result_service.py
zhangyingjie on 12 Nov 910 bytes 请求接口和处理改为异步方式
from typing import List

from sqlmodel import select
from sqlalchemy.ext.asyncio import AsyncSession
from entity.frame_analysis_result import FrameAnalysisResultCreate, FrameAnalysisResult


class FrameAnalysisResultService:

    def __init__(self, db: AsyncSession):
        self.db = db

    async def add_frame_analysis_results(self, results: List[FrameAnalysisResultCreate]):
        new_results = [FrameAnalysisResult.model_validate(result) for result in results]
        for result in new_results:
            self.db.add(result)
        await self.db.commit()
        for result in new_results:
            await self.db.refresh(result)
        return new_results

    async def get_results_by_frame(self, frame_id):
        statement = select(FrameAnalysisResult).where(FrameAnalysisResult.frame_id == frame_id)
        results = await self.db.execute(statement)
        return results.scalars().all()