Source code for zsl.db.helpers.query_helper

"""
:mod:`zsl.db.helpers.query_helper`
----------------------------------

.. moduleauthor:: Martin Babka
"""
from zsl.db.helpers.pagination import Pagination
from zsl.db.helpers.query_filter import QueryFilter
from zsl.db.helpers.sorter import Sorter


[docs] class QueryHelper: def __init__(self, cls, query_filter, pagination, sorter): self._cls = cls if not isinstance(query_filter, QueryFilter): query_filter = QueryFilter(query_filter) self._query_filter = query_filter if not isinstance(pagination, Pagination): pagination = Pagination(pagination) self._pagination = pagination if not isinstance(sorter, Sorter): sorter = Sorter(sorter) self._sorter = sorter
[docs] def execute(self, q): q = self._query_filter.apply_query_filter(q, self._cls) q = self._sorter.apply_sorter(q, self._cls) return self._pagination.paginate(q)
[docs] def get_pagination(self): return self._pagination
[docs] def get_sorter(self): return self._sorter