Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions archipy/adapters/orm/sqlalchemy/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from archipy.models.dtos.pagination_dto import PaginationDTO
from archipy.models.dtos.sort_dto import SortDTO
from archipy.models.entities import BaseEntity
from archipy.models.errors.custom_errors import InternalError, InvalidEntityTypeError
from archipy.models.errors.custom_errors import InternalError, InvalidArgumentError, InvalidEntityTypeError
from archipy.models.types.base_types import FilterOperationType
from archipy.models.types.sort_order_type import SortOrderType

Expand Down Expand Up @@ -120,9 +120,13 @@ def _apply_sorting(entity: type[BaseEntity], query: Select, sort_info: SortDTO |
else:
sort_column = sort_info.column

if sort_info.order == SortOrderType.ASCENDING:
order_value: str = sort_info.order.value if isinstance(sort_info.order, Enum) else sort_info.order
if order_value == SortOrderType.ASCENDING.value:
return query.order_by(sort_column.asc())
return query.order_by(sort_column.desc())
elif order_value == SortOrderType.DESCENDING.value:
return query.order_by(sort_column.desc())
else:
raise InvalidArgumentError(argument_name="sort_info.order")


class SqlAlchemyAdapter(SqlAlchemyPort, SqlAlchemyPaginationMixin, SqlAlchemySortMixin):
Expand Down