From dabff74946f56c4ccbd04428939d0545ad8bbb2b Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 22 Aug 2025 11:33:14 -0700 Subject: [PATCH] fix notification validation --- server/src/validation/joi.js | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/server/src/validation/joi.js b/server/src/validation/joi.js index 725004afa..fa8dccde2 100755 --- a/server/src/validation/joi.js +++ b/server/src/validation/joi.js @@ -580,17 +580,31 @@ const createNotificationBodyValidation = joi.object({ }), address: joi.when("type", { - is: "email", - then: joi.string().email().required().messages({ - "string.empty": "E-mail address cannot be empty", - "any.required": "E-mail address is required", - "string.email": "Please enter a valid e-mail address", - }), - otherwise: joi.string().uri().required().messages({ - "string.empty": "Webhook URL cannot be empty", - "any.required": "Webhook URL is required", - "string.uri": "Please enter a valid Webhook URL", - }), + switch: [ + { + is: "email", + then: joi.string().email().required().messages({ + "string.empty": "E-mail address cannot be empty", + "any.required": "E-mail address is required", + "string.email": "Please enter a valid e-mail address", + }), + }, + { + is: "pager_duty", + then: joi.string().required().messages({ + "string.empty": "PagerDuty integration key cannot be empty", + "any.required": "PagerDuty integration key is required", + }), + }, + { + is: joi.string().valid("webhook", "slack", "discord"), + then: joi.string().uri().required().messages({ + "string.empty": "Webhook URL cannot be empty", + "any.required": "Webhook URL is required", + "string.uri": "Please enter a valid Webhook URL", + }), + }, + ], }), });