lavkach3

Форк
0
/
store_service.py 
41 строка · 1.6 Кб
1
from typing import Any, Optional
2

3
from starlette.requests import Request
4

5
from app.basic.store.models.store_models import Store
6
from app.basic.store.schemas.store_schemas import StoreCreateScheme, StoreUpdateScheme, StoreFilter
7
from core.permissions import permit
8
from core.service.base import BaseService, UpdateSchemaType, ModelType, FilterSchemaType, CreateSchemaType
9

10

11
class StoreService(BaseService[Store, StoreCreateScheme, StoreUpdateScheme, StoreFilter]):
12
    def __init__(self, request: Request):
13
        super(StoreService, self).__init__(request, Store,StoreCreateScheme, StoreUpdateScheme)
14

15
    @permit('store_edit')
16
    async def update(self, id: Any, obj: UpdateSchemaType) -> Optional[ModelType]:
17
        return await super(StoreService, self).update(id, obj)
18

19
    @permit('store_list')
20
    async def list(self, _filter: FilterSchemaType, size: int):
21
        return await super(StoreService, self).list(_filter, size)
22

23
    @permit('store_create')
24
    async def create(self, obj: CreateSchemaType) -> ModelType:
25
        return await super(StoreService, self).create(obj)
26

27
    @permit('store_delete')
28
    async def delete(self, id: Any) -> None:
29
        return await super(StoreService, self).delete(id)
30

31
    @permit('assign_store')
32
    async def assign_store(self, store_id: Any) -> None:
33
        store_entity = await self.get(store_id)
34
        user_entity = await self.env['user'].service.get(self.user.user_id)
35
        user_entity.store_id = store_entity.id
36
        self.session.add(user_entity)
37
        await self.session.commit()
38
        return {
39
            'status': 'OK',
40
            'detail': 'User has been assigned the store'
41
        }
42

43

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

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

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

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