in elastic/shared/query_handlers/range_query.py [0:0]
def read_ranges(self):
fields = list(self.request_body.keys())
if len(fields) == 1:
self.query_range = self.request_body[fields[0]]
# we require date queries to use strict_date_optional_time vs trying to figure out the format
if "format" in self.query_range and self.query_range["format"] == "strict_date_optional_time":
if "gte" in self.query_range:
self.lower_bound = parse_date_optional_time(self.query_range["gte"])
elif "gt" in self.query_range:
self.lower_bound = parse_date_optional_time(self.query_range["gt"])
self.lower_inclusive = False
if "lte" in self.query_range:
self.upper_bound = parse_date_optional_time(self.query_range["lte"])
elif "lt" in self.query_range:
self.upper_bound = parse_date_optional_time(self.query_range["lt"])
self.upper_inclusive = False
if not self.upper_bound or not self.lower_bound:
raise exceptions.TrackConfigError(
f'Range query for date does not have both "gte" or "gt" ' f'and "lte" or "lt" key - [{self.request_body}]'
)
else:
raise exceptions.TrackConfigError(f"More than one field in range query [{fields}]")