in datastore/providers/weaviate_datastore.py [0:0]
def build_filters(filter):
if filter.source:
filter.source = filter.source.value
operands = []
filter_conditions = {
"source": {
"operator": "Equal",
"value": "query.filter.source.value",
"value_key": "valueString",
},
"start_date": {"operator": "GreaterThanEqual", "value_key": "valueDate"},
"end_date": {"operator": "LessThanEqual", "value_key": "valueDate"},
"default": {"operator": "Equal", "value_key": "valueString"},
}
for attr, value in filter.__dict__.items():
if value is not None:
filter_condition = filter_conditions.get(
attr, filter_conditions["default"]
)
value_key = filter_condition["value_key"]
operand = {
"path": [
attr
if not (attr == "start_date" or attr == "end_date")
else "created_at"
],
"operator": filter_condition["operator"],
value_key: value,
}
operands.append(operand)
return {"operator": "And", "operands": operands}