diff --git a/CHANGELOG.md b/CHANGELOG.md index 9df4a4a..e99392b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ ## 2.2.x +### 2.2.2 +#### Bugfix +* Fixed result output +* Fixed customer stream type +* Fixed equal filter ### 2.2.1 #### Bugfix * Fixed bug in *match()* method of *Routing* class diff --git a/routingfilter/filters/filters.py b/routingfilter/filters/filters.py index 7a209db..ad43d6d 100644 --- a/routingfilter/filters/filters.py +++ b/routingfilter/filters/filters.py @@ -94,13 +94,13 @@ def match(self, event: DictQuery): """ filter_value = [] for value in self._value: - value = value.lower() if isinstance(value, str) else value + value = value.lower() if isinstance(value, str) else str(value) filter_value.append(value) for key in self._key: event_value = event.get(key, []) event_value = event_value if isinstance(event_value, list) else [event_value] for value in event_value: - value = value.lower() if isinstance(value, str) else value + value = value.lower() if isinstance(value, str) else str(value) if value in filter_value: return True return False diff --git a/routingfilter/filters/results.py b/routingfilter/filters/results.py index 6bead98..d46c8c5 100644 --- a/routingfilter/filters/results.py +++ b/routingfilter/filters/results.py @@ -8,7 +8,7 @@ class Results: def __init__(self, rules, output): self.rules = rules - self.output = output + self.output = output["customer"] if output is not None and "customer" in output.keys() else output def to_dict(self): - return {"output": self.output, "rules_uid": self.rules} + return {"output": self.output, "rules": self.rules} diff --git a/routingfilter/routing.py b/routingfilter/routing.py index 77f9e33..be2c89d 100644 --- a/routingfilter/routing.py +++ b/routingfilter/routing.py @@ -100,7 +100,7 @@ def load_from_dicts(self, rules_list: List[dict], validate_rules: bool = True, v # check stream if stream_type == "streams": streams = self.streams - elif stream_type == "customer": + elif stream_type == "customers": streams = self.customer else: self.logger.error(f"Error during loading rule. Invalid Stream: {stream_type}") @@ -115,7 +115,7 @@ def load_from_dicts(self, rules_list: List[dict], validate_rules: bool = True, v streams.add_rulemanager(rule_manager) for rule in rule_file[stream_type]["rules"][tag]: # add rule to rule manager and filters to rule - output = rule["streams"] if "streams" in rule.keys() else None + output = rule[stream_type] if stream_type in rule.keys() else None if "id" not in rule.keys(): rule["id"] = str(uuid.uuid4()) uid = rule["id"] diff --git a/setup.py b/setup.py index 32a087b..1c3782f 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name="routingfilter", - version="2.2.1", + version="2.2.2", packages=find_packages(include=["routingfilter", "routingfilter.*"]), include_package_data=True, install_requires=["IPy~=1.1", "macaddress~=2.0.2"], diff --git a/test_data/test_rule_3_customer_equals.json b/test_data/test_rule_3_customer_equals.json index 03d6df9..d3563a4 100644 --- a/test_data/test_rule_3_customer_equals.json +++ b/test_data/test_rule_3_customer_equals.json @@ -1,5 +1,5 @@ { - "customer": { + "customers": { "rules": { "all": [ { @@ -15,7 +15,7 @@ ] } ], - "streams": { + "customer": { "Workshop": { "workers_needed": 1 }