From 78d220ef6dee5635bf496cc4bab3c54b5aa70e72 Mon Sep 17 00:00:00 2001 From: CofenseLabs-Doug Date: Fri, 29 Apr 2022 09:51:42 -0400 Subject: [PATCH] Add Sort Modifier --- src/jsonapi_client/__init__.py | 2 +- src/jsonapi_client/filter.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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}'