Working version

This commit is contained in:
Eden Kirin
2023-08-27 00:03:13 +02:00
parent 7f1acec1af
commit 9faca36ce1
5 changed files with 86 additions and 72 deletions

View File

@ -1,9 +1,14 @@
from __future__ import annotations
from typing import Annotated
from litestar.contrib.repository import FilterTypes
from litestar.contrib.sqlalchemy.base import BigIntBase
from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
from litestar.contrib.sqlalchemy.repository import SQLAlchemyAsyncRepository
from litestar.contrib.sqlalchemy.repository.types import SelectT
from litestar.dto import DTOConfig
from sqlalchemy import true
from sqlalchemy.orm import Mapped
from app.lib import service
@ -11,12 +16,27 @@ from app.lib import service
class Machine(BigIntBase):
__tablename__ = "machines"
caption: Mapped[str]
enabled: Mapped[bool]
alive: Mapped[bool]
deleted: Mapped[bool]
external_id: Mapped[str]
class Repository(SQLAlchemyAsyncRepository[Machine]):
model_type = Machine
def _apply_filters(
self, *filters: FilterTypes, apply_pagination: bool = True, statement: SelectT
) -> SelectT:
statement = super()._apply_filters(
*filters, apply_pagination=apply_pagination, statement=statement
)
statement = statement.where(Machine.alive == true())
return statement
class Service(service.Service[Machine]):
repository_type = Repository