- filter_vals = filter_expr[2:]
- filter_list.extend(toFilterArgs(
- filter_op, obj, filter_key, filter_vals))
- logger.info('Filter list length: %d' % len(filter_list))
- return filter_list
-
-
-def toFilterArgs(operation: str, obj: ColumnElement, key: str, values: list):
- if not hasattr(obj, key):
- logger.warning('Filter attrName %s not in Object %s.' %
- (key, str(obj)))
- return []
-
- ll = list()
- if operation == 'eq':
- for val in values:
- if val.lower() == 'null':
- val = None
- ll.append(getattr(obj, key) == val)
- elif operation == 'neq':
- for val in values:
- if val.lower() == 'null':
- val = None
- ll.append(getattr(obj, key) != val)
- elif operation == 'gt':
- for val in values:
- ll.append(getattr(obj, key) > val)
- elif operation == 'lt':
- for val in values:
- ll.append(getattr(obj, key) < val)
- elif operation == 'gte':
- for val in values:
- ll.append(getattr(obj, key) >= val)
- elif operation == 'lte':
- for val in values:
- ll.append(getattr(obj, key) <= val)
- elif operation == 'in':
- pass
- elif operation == 'nin':
- pass
- elif operation == 'count':
- pass
- elif operation == 'ncount':
- pass
- else:
- raise KeyError('Filter operation value not support.')
-
- return ll
+ # filter_vals = filter_expr[2:]
+ if not hasattr(obj, filter_key):
+ raise BadRequestException(
+ 'Filter attrName {} not in the Object'.format(filter_key))