UNPKG

fastify-mongoose-rest

Version:

Rest API generator tools for fastify and mongoose

49 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Modify = void 0; const utils_1 = require("../utils"); function Modify(basePath, model, options) { const { tags, validationSchema, findProperty } = options; let body = { type: 'object' }; let response = {}; if (validationSchema) { body = { type: 'object', properties: { ...validationSchema, }, }; delete body.properties._id; response = (0, utils_1.createResponseSchema)(validationSchema, 'object'); } return { method: 'PATCH', url: `${basePath}/:id`, schema: { summary: `Modify a existing ${model.modelName} resource`, tags, params: { type: 'object', properties: { id: { type: 'string' }, }, }, body, response, }, handler: async (request, reply) => { const query = { [findProperty || '_id']: request.params.id, }; let resource = await model.findOne(query).exec(); if (!resource) { return reply.code(404).send(new Error('Resource not found')); } resource = (0, utils_1.updatePropertiesRecursive)(resource, request.body); await model.updateOne(query, { $set: resource }); return reply.send(resource); }, }; } exports.Modify = Modify; //# sourceMappingURL=modify.js.map