fix(rule_engine): rule_id and resource_id in path urlencoded
This commit is contained in:
parent
6feaf1a8cf
commit
892becb5bf
|
@ -250,7 +250,8 @@ do_create_rule2(ParsedParams) ->
|
||||||
return({error, 400, ?ERR_BADARGS(Reason)})
|
return({error, 400, ?ERR_BADARGS(Reason)})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
update_rule(#{id := Id}, Params) ->
|
update_rule(#{id := Id0}, Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
case parse_rule_params(Params, #{id => Id}) of
|
case parse_rule_params(Params, #{id => Id}) of
|
||||||
{ok, ParsedParams} ->
|
{ok, ParsedParams} ->
|
||||||
case emqx_rule_engine:update_rule(ParsedParams) of
|
case emqx_rule_engine:update_rule(ParsedParams) of
|
||||||
|
@ -275,16 +276,21 @@ list_rules(_Bindings, Params) ->
|
||||||
return_all(emqx_rule_registry:get_rules_ordered_by_ts())
|
return_all(emqx_rule_registry:get_rules_ordered_by_ts())
|
||||||
end.
|
end.
|
||||||
|
|
||||||
show_rule(#{id := Id}, _Params) ->
|
show_rule(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
reply_with(fun emqx_rule_registry:get_rule/1, Id).
|
reply_with(fun emqx_rule_registry:get_rule/1, Id).
|
||||||
|
|
||||||
delete_rule(#{id := Id}, _Params) ->
|
delete_rule(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
ok = emqx_rule_engine:delete_rule(Id),
|
ok = emqx_rule_engine:delete_rule(Id),
|
||||||
return(ok).
|
return(ok).
|
||||||
|
|
||||||
reset_metrics_local(Id) -> emqx_rule_metrics:reset_metrics(Id).
|
reset_metrics_local(Id0) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
|
emqx_rule_metrics:reset_metrics(Id).
|
||||||
|
|
||||||
reset_metrics(#{id := Id}, _Params) ->
|
reset_metrics(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
_ = ?CLUSTER_CALL(reset_metrics_local, [Id]),
|
_ = ?CLUSTER_CALL(reset_metrics_local, [Id]),
|
||||||
return(ok).
|
return(ok).
|
||||||
|
|
||||||
|
@ -350,7 +356,8 @@ list_resources(#{}, _Params) ->
|
||||||
list_resources_by_type(#{type := Type}, _Params) ->
|
list_resources_by_type(#{type := Type}, _Params) ->
|
||||||
return_all(emqx_rule_registry:get_resources_by_type(Type)).
|
return_all(emqx_rule_registry:get_resources_by_type(Type)).
|
||||||
|
|
||||||
show_resource(#{id := Id}, _Params) ->
|
show_resource(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
case emqx_rule_registry:find_resource(Id) of
|
case emqx_rule_registry:find_resource(Id) of
|
||||||
{ok, R} ->
|
{ok, R} ->
|
||||||
StatusFun =
|
StatusFun =
|
||||||
|
@ -366,7 +373,8 @@ show_resource(#{id := Id}, _Params) ->
|
||||||
return({error, 404, <<"Not Found">>})
|
return({error, 404, <<"Not Found">>})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
get_resource_status(#{id := Id}, _Params) ->
|
get_resource_status(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
case emqx_rule_engine:get_resource_status(Id) of
|
case emqx_rule_engine:get_resource_status(Id) of
|
||||||
{ok, Status} ->
|
{ok, Status} ->
|
||||||
return({ok, Status});
|
return({ok, Status});
|
||||||
|
@ -374,7 +382,8 @@ get_resource_status(#{id := Id}, _Params) ->
|
||||||
return({error, 400, ?ERR_NO_RESOURCE(Id)})
|
return({error, 400, ?ERR_NO_RESOURCE(Id)})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
start_resource(#{id := Id}, _Params) ->
|
start_resource(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
case emqx_rule_engine:start_resource(Id) of
|
case emqx_rule_engine:start_resource(Id) of
|
||||||
ok ->
|
ok ->
|
||||||
return(ok);
|
return(ok);
|
||||||
|
@ -385,7 +394,8 @@ start_resource(#{id := Id}, _Params) ->
|
||||||
return({error, 400, ?ERR_BADARGS(Reason)})
|
return({error, 400, ?ERR_BADARGS(Reason)})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
update_resource(#{id := Id}, NewParams) ->
|
update_resource(#{id := Id0}, NewParams) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
P1 = case proplists:get_value(<<"description">>, NewParams) of
|
P1 = case proplists:get_value(<<"description">>, NewParams) of
|
||||||
undefined -> #{};
|
undefined -> #{};
|
||||||
Value -> #{<<"description">> => Value}
|
Value -> #{<<"description">> => Value}
|
||||||
|
@ -409,7 +419,8 @@ update_resource(#{id := Id}, NewParams) ->
|
||||||
return({error, 400, ?ERR_BADARGS(Reason)})
|
return({error, 400, ?ERR_BADARGS(Reason)})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
delete_resource(#{id := Id}, _Params) ->
|
delete_resource(#{id := Id0}, _Params) ->
|
||||||
|
Id = urldecode(Id0),
|
||||||
case emqx_rule_engine:delete_resource(Id) of
|
case emqx_rule_engine:delete_resource(Id) of
|
||||||
ok -> return(ok);
|
ok -> return(ok);
|
||||||
{error, not_found} -> return(ok);
|
{error, not_found} -> return(ok);
|
||||||
|
@ -660,3 +671,6 @@ run_fuzzy_match(E = #rule{for = Topics}, [{for, like, Pattern}|Fuzzy]) ->
|
||||||
lists:any(fun(For) -> binary:match(For, Pattern) /= nomatch end, Topics)
|
lists:any(fun(For) -> binary:match(For, Pattern) /= nomatch end, Topics)
|
||||||
andalso run_fuzzy_match(E, Fuzzy);
|
andalso run_fuzzy_match(E, Fuzzy);
|
||||||
run_fuzzy_match(_E, [{_Key, like, _SubStr}| _Fuzzy]) -> false.
|
run_fuzzy_match(_E, [{_Key, like, _SubStr}| _Fuzzy]) -> false.
|
||||||
|
|
||||||
|
urldecode(S) ->
|
||||||
|
emqx_http_lib:uri_decode(S).
|
||||||
|
|
Loading…
Reference in New Issue