Skip to content

Commit

Permalink
Create QueryFilterFactory
Browse files Browse the repository at this point in the history
  • Loading branch information
keiranjprice101 committed Jul 29, 2019
1 parent f9600ec commit a2d8050
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions common/database_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,28 @@ def apply_filter(self, query):
query.include_related_entities = True


class QueryFilterFactory(object):
@staticmethod
def get_query_filter(filter):
"""
Given a filter return a matching Query filter object
:param filter: dict - The filter to create the QueryFilter for
:return: The QueryFilter object created
"""
filter_name = list(filter)[0].lower()
if filter_name == "where":
return WhereFilter(list(filter["where"])[0], filter["where"][list(filter["where"])[0]])
elif filter_name == "order":
return OrderFilter(filter["order"].split(" ")[0], filter["order"].split(" ")[1])
elif filter_name == "skip":
return SkipFilter(filter["skip"])
elif filter_name == "limit":
return LimitFilter(filter["limit"])
elif filter_name == "include":
return IncludeFilter(filter)
else:
raise BadFilterError(f" Bad filter: {filter}")

def insert_row_into_table(row):
"""
Insert the given row into its table
Expand Down

0 comments on commit a2d8050

Please sign in to comment.