refactor: extract escapeRegex and validateTagSlugs server utils
Deduplicate tag validation and regex escaping into shared auto-imported utils. Add tag validation to wiki patch/batch-tag routes. Remove duplicate tags field from event schema.
This commit is contained in:
parent
f585fabf21
commit
a516f172fb
11 changed files with 33 additions and 31 deletions
3
server/utils/escapeRegex.js
Normal file
3
server/utils/escapeRegex.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export function escapeRegex(str) {
|
||||
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
||||
}
|
||||
14
server/utils/validateTagSlugs.js
Normal file
14
server/utils/validateTagSlugs.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import Tag from '../models/tag.js'
|
||||
|
||||
export async function validateTagSlugs(slugs) {
|
||||
if (!slugs?.length) return
|
||||
const foundTags = await Tag.find({ slug: { $in: slugs } })
|
||||
const foundSlugs = new Set(foundTags.map(t => t.slug))
|
||||
const invalid = slugs.filter(s => !foundSlugs.has(s))
|
||||
if (invalid.length > 0) {
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: `Unknown tag slugs: ${invalid.join(', ')}`
|
||||
})
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue