Skip to content

Commit

Permalink
#142: Move ICAT files and skeleton for filters
Browse files Browse the repository at this point in the history
  • Loading branch information
MRichards99 committed Jul 29, 2020
1 parent ea45b66 commit 8ac7efc
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 6 deletions.
2 changes: 1 addition & 1 deletion common/backends.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from common.database.backend import DatabaseBackend
from common.python_icat_backend import PythonICATBackend
from common.icat.backend import PythonICATBackend
from common.backend import Backend
from common.config import config
import sys
Expand Down
4 changes: 3 additions & 1 deletion common/database/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
DatabaseOrderFilter as OrderFilter, DatabaseSkipFilter as SkipFilter, DatabaseLimitFilter as LimitFilter, \
DatabaseIncludeFilter as IncludeFilter
elif backend_type == "python_icat":
pass
from common.icat.filters import PythonICATWhereFilter as WhereFilter, PythonICATDistinctFieldFilter as DistinctFieldFilter, \
PythonICATOrderFilter as OrderFilter, PythonICATSkipFilter as SkipFilter, PythonICATLimitFilter as LimitFilter, \
PythonICATIncludeFilter as IncludeFilter
else:
# TODO - Check this works
raise ApiError("Cannot select which implementation of filters to import, check the config file has a valid backend type")
Expand Down
6 changes: 3 additions & 3 deletions common/python_icat_backend.py → common/icat/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

from common.backend import Backend
from common.helpers import queries_records
from common.python_icat_helpers import requires_session_id, get_session_details_helper, logout_icat_client, \
refresh_client_session, get_entity_by_id, update_entity_by_id, \
delete_entity_by_id, get_entity_with_filters
from common.icat.helpers import requires_session_id, get_session_details_helper, logout_icat_client, \
refresh_client_session, get_entity_by_id, update_entity_by_id, delete_entity_by_id, get_entity_with_filters

from common.config import config
from common.exceptions import AuthenticationError
from common.models.db_models import SESSION
Expand Down
49 changes: 49 additions & 0 deletions common/icat/filters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from common.filters import WhereFilter, DistinctFieldFilter, OrderFilter, SkipFilter, LimitFilter, \
IncludeFilter

class PythonICATWhereFilter(WhereFilter):
def __init__(self, field, value, operation):
super().__init__(field, value, operation)

def apply_filter(self, query):
pass


class PythonICATDistinctFieldFilter(DistinctFieldFilter):
def __init__(self, fields):
super().__init__(fields)

def apply_filter(self, query):
pass


class PythonICATOrderFilter(OrderFilter):
def __init__(self, field, direction):
super().__init__(field, direction)

def apply_filter(self, query):
pass


class PythonICATSkipFilter(SkipFilter):
def __init__(self, skip_value):
super().__init__(skip_value)

def apply_filter(self, query):
pass


class PythonICATLimitFilter(LimitFilter):
def __init__(self, limit_value):
super().__init__(limit_value)

def apply_filter(self, query):
pass


class PythonICATIncludeFilter(IncludeFilter):
def __init__(self, included_filters):
super().__init__(included_filters)

def apply_filter(self, query):
pass
File renamed without changes.
5 changes: 4 additions & 1 deletion test/test_database_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
DatabaseOrderFilter as OrderFilter, DatabaseSkipFilter as SkipFilter, DatabaseLimitFilter as LimitFilter, \
DatabaseIncludeFilter as IncludeFilter
elif backend_type == "python_icat":
pass
# TODO - Adapt these tests for the ICAT implementation of filters
from common.icat.filters import PythonICATWhereFilter as WhereFilter, PythonICATDistinctFieldFilter as DistinctFieldFilter, \
PythonICATOrderFilter as OrderFilter, PythonICATSkipFilter as SkipFilter, PythonICATLimitFilter as LimitFilter, \
PythonICATIncludeFilter as IncludeFilter
else:
# TODO - Check this works
raise ApiError("Cannot select which implementation of filters to import, check the config file has a valid backend type")
Expand Down

0 comments on commit 8ac7efc

Please sign in to comment.