Working version
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, Optional, cast
|
||||
from dataclasses import dataclass
|
||||
from typing import TYPE_CHECKING, Optional, cast, TypeVar, Type, Generic
|
||||
|
||||
from litestar import Controller, delete, get, post, put
|
||||
from litestar.contrib.repository.filters import LimitOffset, SearchFilter, FilterTypes
|
||||
from litestar.di import Provide
|
||||
from litestar.pagination import (
|
||||
AbstractAsyncOffsetPaginator,
|
||||
@ -12,16 +14,19 @@ from litestar.status_codes import HTTP_200_OK
|
||||
from sqlalchemy import ScalarResult, func, select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.domain.machine import MachineReadDTO, MachineWriteDTO, Repository, Service
|
||||
from app.domain.machine import Machine
|
||||
|
||||
from litestar.contrib.repository.filters import SearchFilter, LimitOffset
|
||||
from app.domain.machine import (
|
||||
Machine,
|
||||
MachineReadDTO,
|
||||
MachineWriteDTO,
|
||||
Repository,
|
||||
Service,
|
||||
)
|
||||
from app.lib.responses import ObjectListResponse, ObjectResponse
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
|
||||
|
||||
DETAIL_ROUTE = "/{machine_id:int}"
|
||||
|
||||
|
||||
@ -59,20 +64,10 @@ class MachineController(Controller):
|
||||
|
||||
@get()
|
||||
async def get_machines(
|
||||
self, service: Service,
|
||||
search: Optional[str] = None,
|
||||
) -> list[Machine]:
|
||||
"""Get a list of authors."""
|
||||
|
||||
print("#" * 100)
|
||||
print(search)
|
||||
print("#" * 100)
|
||||
|
||||
self, service: Service, search: Optional[str] = None
|
||||
) -> ObjectListResponse[Machine]:
|
||||
filters = [
|
||||
LimitOffset(
|
||||
limit=20,
|
||||
offset=0
|
||||
),
|
||||
LimitOffset(limit=20, offset=0),
|
||||
]
|
||||
|
||||
if search:
|
||||
@ -83,22 +78,18 @@ class MachineController(Controller):
|
||||
),
|
||||
)
|
||||
|
||||
return await service.list(*filters)
|
||||
|
||||
# @get()
|
||||
# async def get_machines(
|
||||
# self, service: Service, filters: list[FilterTypes]
|
||||
# ) -> list[Machine]:
|
||||
# """Get a list of authors."""
|
||||
# return await service.list(*filters)
|
||||
content = await service.list(*filters)
|
||||
return ObjectListResponse(content=content)
|
||||
|
||||
# @post()
|
||||
# async def create_author(self, data: Machine, service: Service) -> Machine:
|
||||
# return await service.create(data)
|
||||
#
|
||||
@get(DETAIL_ROUTE)
|
||||
async def get_machine(self, service: Service, machine_id: int) -> Machine:
|
||||
return await service.get(machine_id)
|
||||
async def get_machine(self, service: Service, machine_id: int) -> ObjectResponse[Machine]:
|
||||
content = await service.get(machine_id)
|
||||
return ObjectResponse(content=content)
|
||||
|
||||
#
|
||||
# @put(DETAIL_ROUTE)
|
||||
# async def update_author(
|
||||
|
||||
Reference in New Issue
Block a user