lavkach3

Форк
0
37 строк · 1.5 Кб
1
from sqlalchemy import select
2
from starlette.requests import Request
3

4
from app.basic.uom.models.uom_models import Uom
5
from app.basic.uom.schemas.uom_schemas import UomCreateScheme, UomUpdateScheme, UomFilter, ConvertSchema
6
from core.service.base import BaseService
7

8

9
class UomService(BaseService[Uom, UomCreateScheme, UomUpdateScheme, UomFilter]):
10
    def __init__(self, request: Request):
11
        super(UomService, self).__init__(request, Uom, UomCreateScheme, UomUpdateScheme)
12

13
    async def convert(self, objs: list[ConvertSchema]):
14
        ids = []
15
        for o in objs:
16
            ids.append(o.uom_id_in)
17
            ids.append(o.uom_id_out)
18
        query = select(self.model).filter(self.model.id.in_(ids))
19
        result = self.session.execute(query)
20
        result = {i.id: i for i in result}
21
        # for obj in objs:
22
        #
23
        # uom_id_in_entity = await self.get(obj)
24
        # uom_id_out_entity = await self.get(uom_id_out)
25
        #
26
        # await self.session.delete(entity)
27
        # try:
28
        #     await self.session.commit()
29
        # except IntegrityError as e:
30
        #     await self.session.rollback()
31
        #     if "duplicate key" in str(e):
32
        #         raise HTTPException(status_code=409, detail=f"Conflict Error entity {str(e)}")
33
        #     else:
34
        #         raise HTTPException(status_code=500, detail=f"ERROR:  {str(e)}")
35
        # except Exception as e:
36
        #     raise HTTPException(status_code=500, detail=f"ERROR:  {str(e)}")
37
        return True
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.