Skip to content

Commit ecc9c47

Browse files
committed
Added method checking
1 parent ffa3d57 commit ecc9c47

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

custom_components/pyscript/eval.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,13 @@
7979
"webhook_data",
8080
}
8181

82+
WEBHOOK_METHODS = {
83+
"GET",
84+
"HEAD",
85+
"POST",
86+
"PUT",
87+
}
88+
8289

8390
def ast_eval_exec_factory(ast_ctx, mode):
8491
"""Generate a function that executes eval() or exec() with given ast_ctx."""
@@ -527,6 +534,10 @@ async def do_service_call(func, ast_ctx, data):
527534
self.trigger_service.add(srv_name)
528535
continue
529536

537+
if dec_name == "webhook_trigger" and "methods" in dec_kwargs:
538+
if len(bad := set(dec_kwargs["methods"]).difference(WEBHOOK_METHODS)) > 0:
539+
raise TypeError(f"{exc_mesg}: {bad} aren't valid {dec_name} methods")
540+
530541
if dec_name not in trig_decs:
531542
trig_decs[dec_name] = []
532543
if len(trig_decs[dec_name]) > 0 and "rep_ok" not in arg_info:

0 commit comments

Comments
 (0)