UNPKG

moleculer-mongobubble

Version:

A Moleculer module for generating CRUD APIs using MongoBubble.

64 lines 4.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceOne = exports.replaceOneRest = void 0; const bson_1 = require("bson"); const params_1 = require("../utils/params"); const ejson_1 = require("../utils/ejson"); exports.replaceOneRest = { rest: 'PUT /', handler: async (ctx) => { const params = (0, params_1.unmergeAndValidate)(ctx, { type: 'object', properties: { body: { type: 'object', additionalProperties: true, }, query: { type: 'object', properties: { upsert: { type: 'boolean' }, stopPropagation: { type: 'boolean' }, }, }, }, }); const prefix = ctx.meta?.eventPrefix || ''; return ctx.call(`${prefix}${ctx.service?.fullName}.replaceOne`, { document: params.body, upsert: params.query.upsert, stopPropagation: params?.query?.stopPropagation, }); }, }; exports.replaceOne = { visibility: 'public', handler: async (ctx) => { const repository = await (async () => ctx.service?.getRepository('write'))(); const options = { snapshot: {}, upsert: null }; if (ctx.params?.upsert) { options.upsert = true; } else { Reflect.deleteProperty(options, 'upsert'); } const document = (0, ejson_1.isEJSON)(ctx.params.document) ? bson_1.EJSON.deserialize(ctx.params.document) : ctx.params.document; const result = await repository.replaceOne(document, options); const serialized = bson_1.EJSON.serialize(result); if (ctx.params?.stopPropagation) { return serialized; } const prefix = ctx.meta?.eventPrefix || ''; ctx.broker.emit(`${prefix}${ctx.service?.fullName}.updated`, { id: ctx.params.id, result: serialized, old: options.snapshot, document, upsert: ctx.params.upsert, }); return serialized; }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3JlcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXVDO0FBRXZDLDRDQUFxRDtBQUNyRCwwQ0FBeUM7QUFHNUIsUUFBQSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLE9BQU87SUFDYixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQTJDLEVBQUUsRUFBRTtRQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFBLDJCQUFrQixFQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLEVBQUUsUUFBUTtZQUNkLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLFFBQVE7b0JBQ2Qsb0JBQW9CLEVBQUUsSUFBSTtpQkFDM0I7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3dCQUMzQixlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3FCQUNyQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsYUFBYSxFQUFFO1lBQzlELFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNyQixNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQzNCLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWU7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFFVyxRQUFBLFVBQVUsR0FBRztJQUN4QixVQUFVLEVBQUUsUUFBNEI7SUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUEyQyxFQUFFLEVBQUU7UUFDN0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTdFLE1BQU0sT0FBTyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUEsZUFBTyxFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxZQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUV4QixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLFlBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0MsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLFVBQVUsRUFBRTtZQUMzRCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUTtZQUNyQixRQUFRO1lBQ1IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTTtTQUMxQixDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0YsQ0FBQyJ9