Skip to content

Commit efea247

Browse files
Merge pull request #32 from miladmahmoodi/fix-sort-query
Fix: Fixed sql alchemy sort mixin
2 parents ec6695e + 6044461 commit efea247

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

archipy/adapters/orm/sqlalchemy/adapters.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from archipy.models.dtos.pagination_dto import PaginationDTO
1515
from archipy.models.dtos.sort_dto import SortDTO
1616
from archipy.models.entities import BaseEntity
17-
from archipy.models.errors.custom_errors import InternalError, InvalidEntityTypeError
17+
from archipy.models.errors.custom_errors import InternalError, InvalidArgumentError, InvalidEntityTypeError
1818
from archipy.models.types.base_types import FilterOperationType
1919
from archipy.models.types.sort_order_type import SortOrderType
2020

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

123-
if sort_info.order == SortOrderType.ASCENDING:
123+
order_value: str = sort_info.order.value if isinstance(sort_info.order, Enum) else sort_info.order
124+
if order_value == SortOrderType.ASCENDING.value:
124125
return query.order_by(sort_column.asc())
125-
return query.order_by(sort_column.desc())
126+
elif order_value == SortOrderType.DESCENDING.value:
127+
return query.order_by(sort_column.desc())
128+
else:
129+
raise InvalidArgumentError(argument_name="sort_info.order")
126130

127131

128132
class SqlAlchemyAdapter(SqlAlchemyPort, SqlAlchemyPaginationMixin, SqlAlchemySortMixin):

0 commit comments

Comments
 (0)