UST-QuAntiL / qhana-plugin-registry

A plugin registry for QHAna plugins
https://qhana-plugin-registry.readthedocs.io/en/latest
Apache License 2.0
0 stars 0 forks source link

Fix pagination tripping up if there are no filter criteria #19

Closed buehlefs closed 1 year ago

buehlefs commented 1 year ago

All but the first page were empty if no filter criteria are specified.

Fixed by explicitly setting an empty filter if no filter criteria are specified.

Fixes #18

PhilWun commented 1 year ago

A request to http://localhost:5006/api/plugins/?type=processing&item-count=25 results in an error, but with other plugin types it works.

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask_cors/extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/usr/local/lib/python3.10/site-packages/flask/views.py", line 107, in view
    return current_app.ensure_sync(self.dispatch_request)(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/flask/views.py", line 188, in dispatch_request
    return current_app.ensure_sync(meth)(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/webargs/core.py", line 594, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/flask_smorest/arguments.py", line 82, in wrapper
    return func(*f_args, **f_kwargs)
  File "/usr/local/lib/python3.10/site-packages/flask_smorest/response.py", line 90, in wrapper
    func(*args, **kwargs)
  File "/app/qhana_plugin_registry/api/plugins/root.py", line 161, in get
    pagination_info = default_get_page_info(
  File "/app/qhana_plugin_registry/api/models/pagination_util.py", line 165, in default_get_page_info
    return get_page_info(
  File "/app/qhana_plugin_registry/db/pagination.py", line 153, in get_page_info
    DB.session.query(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/operators.py", line 440, in __getitem__
    return self.operate(getitem, index)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 869, in operate
    return op(self.comparator, *other, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/operators.py", line 440, in __getitem__
    return self.operate(getitem, index)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/type_api.py", line 77, in operate
    return o[0](self.expr, op, *(other + o[1:]), **kwargs)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/default_comparator.py", line 181, in _getitem_impl
    _unsupported_impl(expr, op, other, **kw)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/default_comparator.py", line 185, in _unsupported_impl
    raise NotImplementedError(
NotImplementedError: Operator 'getitem' is not supported on this expression