fix: trigger event support for webhook get endpoints (#5728)

This commit is contained in:
HugoCasa
2025-05-12 18:17:37 +02:00
committed by GitHub
parent d9efdd4f6c
commit 01906bcb55
+26 -14
View File
@@ -42,7 +42,7 @@ use crate::trigger_helpers::RunnableId;
use crate::users::get_scope_tags;
use crate::utils::content_plain;
use crate::{
args::{DecodeQueries, RawWebhookArgs},
args::{self, RawWebhookArgs},
db::DB,
users::{check_scopes, require_owner_of_path, OptAuthed},
utils::require_super_admin,
@@ -4330,7 +4330,7 @@ pub async fn run_wait_result_job_by_path_get(
Extension(db): Extension<DB>,
Path((w_id, script_path)): Path<(String, StripPath)>,
Query(run_query): Query<RunJobQuery>,
DecodeQueries(queries): DecodeQueries,
args: RawWebhookArgs,
) -> error::Result<Response> {
#[cfg(feature = "enterprise")]
check_license_key_valid().await?;
@@ -4342,17 +4342,23 @@ pub async fn run_wait_result_job_by_path_get(
x.map_err(|e| Error::internal_err(format!("Impossible to decode query payload: {e:#?}")))
});
let mut payload_args = if let Some(payload) = payload_r {
let payload_args = if let Some(payload) = payload_r {
payload?
} else {
HashMap::new()
};
queries.iter().for_each(|(k, v)| {
payload_args.insert(k.to_string(), v.clone());
});
let inner_args: HashMap<String, Box<RawValue>> = HashMap::new();
let args = PushArgs { extra: Some(payload_args), args: &inner_args };
let mut args = args.process_args(&authed, &db, &w_id, None).await?;
args.body = args::Body::HashMap(payload_args);
let args = args
.to_args_from_runnable(
&db,
&w_id,
RunnableId::from_script_path(&script_path.0),
run_query.skip_preprocessor,
)
.await?;
check_queue_too_long(&db, QUEUE_LIMIT_WAIT_RESULT.or(run_query.queue_limit)).await?;
let script_path = script_path.to_path();
@@ -4424,7 +4430,7 @@ pub async fn run_wait_result_flow_by_path_get(
Extension(db): Extension<DB>,
Path((w_id, flow_path)): Path<(String, StripPath)>,
Query(run_query): Query<RunJobQuery>,
DecodeQueries(queries): DecodeQueries,
args: RawWebhookArgs,
) -> error::Result<Response> {
#[cfg(feature = "enterprise")]
check_license_key_valid().await?;
@@ -4438,17 +4444,23 @@ pub async fn run_wait_result_flow_by_path_get(
})
});
let mut payload_args = if let Some(payload) = payload_r {
let payload_args = if let Some(payload) = payload_r {
payload?
} else {
HashMap::new()
};
queries.iter().for_each(|(k, v)| {
payload_args.insert(k.to_string(), v.clone());
});
let mut args = args.process_args(&authed, &db, &w_id, None).await?;
args.body = args::Body::HashMap(payload_args);
let args = PushArgsOwned { extra: Some(payload_args), args: HashMap::new() };
let args = args
.to_args_from_runnable(
&db,
&w_id,
RunnableId::from_flow_path(&flow_path.0),
run_query.skip_preprocessor,
)
.await?;
run_wait_result_flow_by_path_internal(db, run_query, flow_path, authed, user_db, args, w_id)
.await