def edit_rule(rule_id):
orig_rule = Rule.get_by_id(rule_id)
if not orig_rule or orig_rule.owner_domain != g.domain:
return json_error(404, "Rule not found", {})
try:
rule_json = request.get_json()
Rule.validate(rule_json)
except Exception as e:
return json_error(400, str(e), {})
base_query = Rule.domain_query(g.domain)
name_rule = Rule.get_by_name(base_query, rule_json.get('name'))
if name_rule and name_rule.key.id() != rule_id:
return json_error(400, 'Rule name already in use', {})
try:
orig_rule.from_dict(request.get_json())
orig_rule.put()
return jsonify(orig_rule.to_dict())
except Exception as e:
return json_error(400, str(e), {})
评论列表
文章目录