Source code for fmn.api.handlers.utils

# SPDX-FileCopyrightText: Contributors to the Fedora Project
#
# SPDX-License-Identifier: MIT

from ...database.model import Destination, Filter, GenerationRule, Rule, TrackingRule


[docs]def db_rule_from_api_rule(rule, user): rule_db = Rule(user=user, name=rule.name, disabled=rule.disabled) rule_db.tracking_rule = TrackingRule( name=rule.tracking_rule.name, params=rule.tracking_rule.params ) for generation_rule in rule.generation_rules: gr = GenerationRule(rule=rule_db) for destination in generation_rule.destinations: gr.destinations.append( Destination(protocol=destination.protocol, address=destination.address) ) for name, params in generation_rule.filters.dict().items(): gr.filters.append(Filter(name=name, params=params)) return rule_db