This commit is contained in:
Eden Kirin
2023-08-27 11:16:31 +02:00
parent 14366bc1e1
commit 9700ff2607

View File

@ -1,17 +1,10 @@
from __future__ import annotations from __future__ import annotations
from dataclasses import dataclass from typing import TYPE_CHECKING, Optional
from typing import TYPE_CHECKING, Optional, cast, TypeVar, Type, Generic
from litestar import Controller, delete, get, post, put from litestar import Controller, get
from litestar.contrib.repository.filters import LimitOffset, SearchFilter, FilterTypes from litestar.contrib.repository.filters import LimitOffset, SearchFilter
from litestar.di import Provide from litestar.di import Provide
from litestar.pagination import (
AbstractAsyncOffsetPaginator,
AbstractSyncClassicPaginator,
)
from litestar.status_codes import HTTP_200_OK
from sqlalchemy import ScalarResult, func, select
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from app.domain.machine import ( from app.domain.machine import (
@ -35,24 +28,6 @@ def provides_service(db_session: AsyncSession) -> Service:
return Service(Repository(session=db_session)) return Service(Repository(session=db_session))
# class MachineOffsetPaginator(AbstractAsyncOffsetPaginator[Machine]):
# def __init__(
# self, async_session: AsyncSession
# ) -> None: # 'async_session' dependency will be injected here.
# self.async_session = async_session
#
# async def get_total(self) -> int:
# return cast(
# "int", await self.async_session.scalar(select(func.count(Machine.id)))
# )
#
# async def get_items(self, limit: int, offset: int) -> list[Machine]:
# people: ScalarResult = await self.async_session.scalars(
# select(Machine).slice(offset, limit)
# )
# return list(people.all())
class MachineController(Controller): class MachineController(Controller):
dto = MachineWriteDTO dto = MachineWriteDTO
return_dto = MachineReadDTO return_dto = MachineReadDTO
@ -81,24 +56,9 @@ class MachineController(Controller):
content = await service.list(*filters) content = await service.list(*filters)
return ObjectListResponse(content=content) return ObjectListResponse(content=content)
# @post()
# async def create_author(self, data: Machine, service: Service) -> Machine:
# return await service.create(data)
#
@get(DETAIL_ROUTE) @get(DETAIL_ROUTE)
async def get_machine(self, service: Service, machine_id: int) -> ObjectResponse[Machine]: async def get_machine(
self, service: Service, machine_id: int
) -> ObjectResponse[Machine]:
content = await service.get(machine_id) content = await service.get(machine_id)
return ObjectResponse(content=content) return ObjectResponse(content=content)
#
# @put(DETAIL_ROUTE)
# async def update_author(
# self, data: Machine, service: Service, author_id: UUID
# ) -> Machine:
# """Update an author."""
# return await service.update(author_id, data)
#
# @delete(DETAIL_ROUTE, status_code=HTTP_200_OK)
# async def delete_author(self, service: Service, author_id: UUID) -> Machine:
# """Delete Author by ID."""
# return await service.delete(author_id)