UNPKG

moleculer-mongobubble

Version:

A Moleculer module for generating CRUD APIs using MongoBubble.

40 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.insertOne = void 0; const bson_1 = require("bson"); const params_1 = require("../utils/params"); const ejson_1 = require("../utils/ejson"); exports.insertOne = { rest: 'POST /', handler: async (ctx) => { const repository = await (async () => ctx.service?.getRepository('write'))(); const params = (0, params_1.unmergeAndValidate)(ctx, { type: 'object', // TODO: get schema from entity class properties: { body: { type: 'object', additionalProperties: true, }, query: { type: 'object', properties: { stopPropagation: { type: 'boolean' }, }, }, }, }); // TODO: replicate this logic in all actions // prevents EJSON from converting BSON to JSON (ie. ObjectId to string) instead EJSON to BSON const deserializedBody = (0, ejson_1.isEJSON)(params.body) ? bson_1.EJSON.deserialize(params.body) : params.body; const result = await repository.insertOne(deserializedBody); const serialized = bson_1.EJSON.serialize(result); if (params?.query?.stopPropagation) { return serialized; } const prefix = ctx.meta?.eventPrefix || ''; ctx.broker.emit(`${prefix}${ctx.service?.fullName}.created`, serialized); return serialized; }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF1QztBQUV2Qyw0Q0FBcUQ7QUFDckQsMENBQXlDO0FBRzVCLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUEyQyxFQUFFLEVBQUU7UUFDN0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTdFLE1BQU0sTUFBTSxHQUFHLElBQUEsMkJBQWtCLEVBQUMsR0FBRyxFQUFFO1lBQ3JDLElBQUksRUFBRSxRQUFRO1lBQ2QscUNBQXFDO1lBQ3JDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLFFBQVE7b0JBQ2Qsb0JBQW9CLEVBQUUsSUFBSTtpQkFDM0I7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3FCQUNyQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLDZGQUE2RjtRQUM3RixNQUFNLGdCQUFnQixHQUFHLElBQUEsZUFBTyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFN0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsWUFBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDbkMsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDTyxDQUFDIn0=