diff --git a/src/jsonapi_client/__init__.py b/src/jsonapi_client/__init__.py index ce3b6c7..e804003 100644 --- a/src/jsonapi_client/__init__.py +++ b/src/jsonapi_client/__init__.py @@ -32,7 +32,7 @@ import pkg_resources from .session import Session -from .filter import Filter, Inclusion, Modifier +from .filter import Filter, Inclusion, Modifier, Sort from .common import ResourceTuple __version__ = pkg_resources.get_distribution("jsonapi-client").version diff --git a/src/jsonapi_client/filter.py b/src/jsonapi_client/filter.py index f834eed..e2020a3 100644 --- a/src/jsonapi_client/filter.py +++ b/src/jsonapi_client/filter.py @@ -125,3 +125,16 @@ def __init__(self, *include_args: 'IncludeKeywords') -> None: def appended_query(self) -> str: includes = ','.join(self._include_args) return f'include={includes}' + + +class Sort(Modifier): + """ + Implements query inclusion for Session.get etc. + """ + def __init__(self, *sort_args: 'SortKeywords') -> None: + super().__init__() + self._sort_args = sort_args + + def appended_query(self) -> str: + sort_by = ','.join(self._sort_args) + return f'sort={sort_by}'