diff --git a/api/api/v1/emojis/[id]/index.ts b/api/api/v1/emojis/[id]/index.ts index e0a01504..bb8e022a 100644 --- a/api/api/v1/emojis/[id]/index.ts +++ b/api/api/v1/emojis/[id]/index.ts @@ -113,9 +113,15 @@ export default apiRoute((app) => { "json", z .object({ - shortcode: CustomEmojiSchema.shape.shortcode.max( - config.validation.emojis.max_shortcode_characters, - ), + shortcode: CustomEmojiSchema.shape.shortcode + .max(config.validation.emojis.max_shortcode_characters) + .refine( + (s) => + !config.validation.filters.emoji_shortcode.some( + (filter) => filter.test(s), + ), + "Shortcode contains blocked words", + ), element: z .string() .url() diff --git a/api/api/v1/emojis/index.ts b/api/api/v1/emojis/index.ts index 9e279efe..141e6b3a 100644 --- a/api/api/v1/emojis/index.ts +++ b/api/api/v1/emojis/index.ts @@ -45,9 +45,15 @@ export default apiRoute((app) => validator( "json", z.object({ - shortcode: CustomEmojiSchema.shape.shortcode.max( - config.validation.emojis.max_shortcode_characters, - ), + shortcode: CustomEmojiSchema.shape.shortcode + .max(config.validation.emojis.max_shortcode_characters) + .refine( + (s) => + !config.validation.filters.emoji_shortcode.some( + (filter) => filter.test(s), + ), + "Shortcode contains blocked words", + ), element: z .string() .url()