mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
[docstore] replace remaining Joi usage with zod (#34603)
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com> GitOrigin-RevId: 41ca0c35d59bf6accd619f6b5149be14a69e1078
This commit is contained in:
committed by
Copybot
co-authored by
Jakob Ackermann
parent
6f9b7031f4
commit
f40cebf60b
@@ -5,6 +5,17 @@ import HealthChecker from './HealthChecker.js'
|
||||
import Errors from './Errors.js'
|
||||
import Settings from '@overleaf/settings'
|
||||
import { expressify } from '@overleaf/promise-utils'
|
||||
import { parseReq, z } from '@overleaf/validation-tools'
|
||||
|
||||
const patchDocSchema = z.object({
|
||||
body: z
|
||||
.object({
|
||||
deleted: z.literal(true),
|
||||
deletedAt: z.coerce.date(),
|
||||
name: z.string(),
|
||||
})
|
||||
.strict(),
|
||||
})
|
||||
|
||||
async function getDoc(req, res) {
|
||||
const { doc_id: docId, project_id: projectId } = req.params
|
||||
@@ -182,18 +193,9 @@ async function updateDoc(req, res) {
|
||||
}
|
||||
|
||||
async function patchDoc(req, res) {
|
||||
const { body: meta } = parseReq(req, patchDocSchema)
|
||||
const { doc_id: docId, project_id: projectId } = req.params
|
||||
logger.debug({ projectId, docId }, 'patching doc')
|
||||
|
||||
const allowedFields = ['deleted', 'deletedAt', 'name']
|
||||
const meta = {}
|
||||
Object.entries(req.body).forEach(([field, value]) => {
|
||||
if (allowedFields.includes(field)) {
|
||||
meta[field] = value
|
||||
} else {
|
||||
logger.fatal({ field }, 'joi validation for pathDoc is broken')
|
||||
}
|
||||
})
|
||||
await DocManager.patchDoc(projectId, docId, meta)
|
||||
res.sendStatus(204)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user