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", + }), + }, + ], }), });