stranded-in-python / movix-api

An attempt to build our own Netfilx.
0 stars 0 forks source link

Fixes/di of services #66

Closed Viktor-Gostyaikin closed 1 year ago

Viktor-Gostyaikin commented 1 year ago

Реализовал инверсию зависимостей для ручек, сервисов, менеджера еластика. Осталось доработать менеджер кэша

SBKubric commented 1 year ago
class StorageABC:
    def __init__(self, manager: Callable[[], Manager]):
        self.manager = manager()

    def get_item(item_id: str) -> dict:
        ...

    def get_items(sort_order: dict[str, Any], pagination: PaginateQueryParams, filter: str | None = None, ) -> dict:
        ...

class FilmElasticStorageABC:
    def get_items_by_genre():
        ...

    def get_items_by_person():
        ...

    def get_similar_items():
        ...

class PersonElasticStorage:
    ...

class GenreElasticStorage:
    ...        

class FilmService:
    def 
    async def get_by_id(self, film_id: str) -> Optional[Film]:
        """Получить фильм по ID"""
        film = await self.storage(film_id)
        # тут может быть ещё допобработка фильма, т.к. он не обязательно будет в том виде, который нужен для клиента при получении из стораджа
        # film = prepare_film(film)
        return film