Skip to content

Commit

Permalink
#34: Remove table method from where filter
Browse files Browse the repository at this point in the history
  • Loading branch information
keiranjprice101 committed Sep 10, 2019
1 parent 266c644 commit 8b81ea4
Showing 1 changed file with 5 additions and 11 deletions.
16 changes: 5 additions & 11 deletions common/database_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,24 +137,18 @@ def __init__(self, field, value, operation):
self.operation = operation

def apply_filter(self, query):
table = self._get_table_to_filter(query)

if self.operation == "eq":
query.base_query = query.base_query.filter(getattr(table, self.field) == self.value)
query.base_query = query.base_query.filter(getattr(query.table, self.field) == self.value)
elif self.operation == "like":
query.base_query = query.base_query.filter(getattr(table, self.field).like(f"%{self.value}%"))
query.base_query = query.base_query.filter(getattr(query.table, self.field).like(f"%{self.value}%"))
elif self.operation == "lte":
query.base_query = query.base_query.filter(getattr(table, self.field) <= self.value)
query.base_query = query.base_query.filter(getattr(query.table, self.field) <= self.value)
elif self.operation == "gte":
query.base_query = query.base_query.filter(getattr(table, self.field) >= self.value)
query.base_query = query.base_query.filter(getattr(query.table, self.field) >= self.value)
else:
raise BadFilterError(f" Bad operation given to where filter. operation: {self.operation}")

def _get_table_to_filter(self, query):
if type(query) is UserInvestigationsQuery or type(query) is UserInvestigationsCountQuery:
return INVESTIGATION
else:
return query.table


class OrderFilter(QueryFilter):
precedence = 1
Expand Down

0 comments on commit 8b81ea4

Please sign in to comment.