code: def search(self, *criterion, **kwargs):
          
          query = self._query(*criterion)
          query = self._order_by(query, **kwargs)
          query = self._filter(query, **kwargs)
          # NB: pagination must go last
          query = self._paginate(query, **kwargs)
          return query.all()
docs: Return the list of models matching some criterion.
  
          :param offset: pagination offset, if any
          :param limit: pagination limit, if any