UNPKG

payload

Version:

Node, React, Headless CMS and Application Framework built on Next.js

58 lines (57 loc) 2.22 kB
// @ts-strict-ignore import { getTranslation } from '@payloadcms/translations'; import { status as httpStatus } from 'http-status'; import { getRequestCollection } from '../../utilities/getRequestEntity.js'; import { headersWithCors } from '../../utilities/headersWithCors.js'; import { isNumber } from '../../utilities/isNumber.js'; import { sanitizePopulateParam } from '../../utilities/sanitizePopulateParam.js'; import { sanitizeSelectParam } from '../../utilities/sanitizeSelectParam.js'; import { updateOperation } from '../operations/update.js'; export const updateHandler = async (req)=>{ const collection = getRequestCollection(req); const { depth, draft, limit, overrideLock, populate, select, sort, where } = req.query; const result = await updateOperation({ collection, data: req.data, depth: isNumber(depth) ? Number(depth) : undefined, draft: draft === 'true', limit: isNumber(limit) ? Number(limit) : undefined, overrideLock: Boolean(overrideLock === 'true'), populate: sanitizePopulateParam(populate), req, select: sanitizeSelectParam(select), sort: typeof sort === 'string' ? sort.split(',') : undefined, where }); const headers = headersWithCors({ headers: new Headers(), req }); if (result.errors.length === 0) { const message = req.t('general:updatedCountSuccessfully', { count: result.docs.length, label: getTranslation(collection.config.labels[result.docs.length === 1 ? 'singular' : 'plural'], req.i18n) }); return Response.json({ ...result, message }, { headers, status: httpStatus.OK }); } const total = result.docs.length + result.errors.length; const message = req.t('error:unableToUpdateCount', { count: result.errors.length, label: getTranslation(collection.config.labels[total === 1 ? 'singular' : 'plural'], req.i18n), total }); return Response.json({ ...result, message }, { headers, status: httpStatus.BAD_REQUEST }); }; //# sourceMappingURL=update.js.map