def visit_rel_time_filter(self, node, children): (search_key, _, value) = children if search_key.name in self.date_keys: try: from_val, to_val = parse_datetime_range(value.text) except InvalidQuery as exc: raise InvalidSearchQuery(exc.message) # TODO: Handle negations if from_val is not None: operator = '>=' search_value = from_val[0] else: operator = '<=' search_value = to_val[0] return SearchFilter(search_key, operator, SearchValue(search_value)) else: return self._handle_basic_filter(search_key, '=', SearchValue(value.text))
def visit_rel_time_filter(self, node, children): (search_key, _, value) = children if search_key.name in self.date_keys: try: from_val, to_val = parse_datetime_range(value.text) except InvalidQuery as exc: raise InvalidSearchQuery(six.text_type(exc)) # TODO: Handle negations if from_val is not None: operator = ">=" search_value = from_val[0] else: operator = "<=" search_value = to_val[0] return SearchFilter(search_key, operator, SearchValue(search_value)) else: return self._handle_basic_filter(search_key, "=", SearchValue(value.text))
def visit_rel_time_filter(self, node, children): search_key, _, value = children try: from_val, to_val = parse_datetime_range(value.text) except InvalidQuery as exc: raise InvalidSearchQuery(exc.message) # TODO: Handle negations if from_val is not None: operator = '>=' search_value = from_val[0] else: operator = '<=' search_value = to_val[0] return SearchFilter( search_key, operator, SearchValue(search_value), )
def visit_aggregate_rel_date_filter(self, node, children): (negation, search_key, _, operator, search_value) = children operator = self.handle_negation(negation, operator) is_date_aggregate = any(key in search_key.name for key in self.date_keys) if is_date_aggregate: try: from_val, to_val = parse_datetime_range(search_value.text) except InvalidQuery as exc: raise InvalidSearchQuery(str(exc)) if from_val is not None: operator = ">=" search_value = from_val[0] else: operator = "<=" search_value = to_val[0] return AggregateFilter(search_key, operator, SearchValue(search_value)) else: search_value = operator + search_value.text if operator != "=" else search_value return AggregateFilter(search_key, "=", SearchValue(search_value))
if search_key.name in self.date_keys: try: search_value = parse_datetime_string(search_value) except InvalidQuery as exc: raise InvalidSearchQuery(exc.message) return SearchFilter(search_key, operator, SearchValue(search_value)) else: search_value = operator + search_value if operator != '=' else search_value return self._handle_basic_filter(search_key, '=', SearchValue(search_value)) def visit_rel_time_filter(self, node, (search_key, _, value)): if search_key.name in self.date_keys: try: from_val, to_val = parse_datetime_range(value.text) except InvalidQuery as exc: raise InvalidSearchQuery(exc.message) # TODO: Handle negations if from_val is not None: operator = '>=' search_value = from_val[0] else: operator = '<=' search_value = to_val[0] return SearchFilter(search_key, operator, SearchValue(search_value)) else: return self._handle_basic_filter(search_key, '=', SearchValue(value.text))