UNPKG

moleculer-mongobubble

Version:

A Moleculer module for generating CRUD APIs using MongoBubble.

69 lines 5.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listArchive = exports.listDrafts = exports.list = void 0; const bson_1 = require("bson"); const core_1 = require("@mongobubble/core"); const params_1 = require("../utils/params"); exports.list = { rest: 'GET /', handler: async (ctx) => { const repository = await (async () => ctx.service?.getRepository('read'))(); const params = (0, params_1.unmergeAndValidate)(ctx, { type: 'object', properties: { query: { type: 'object', properties: { drafts: { type: 'boolean' }, archived: { type: 'boolean' }, page: { type: 'number' }, limit: { type: 'number' }, }, }, }, }); const statuses = ['PUBLISHED']; if (params.query?.drafts) { statuses.push('DRAFT'); } if (params.query?.archived) { statuses.push('ARCHIVED'); } const pipeline = [{ $match: { '_meta.status': { $in: statuses } }, }]; if (params.query?.page || params.query?.limit) { const page = params.query?.page || 1; const limit = params.query?.limit || 100; const skip = (page - 1) * limit; pipeline.push({ $skip: skip }, { $limit: limit }); } const results = await repository.list(pipeline); return bson_1.EJSON.serialize(results); }, }; exports.listDrafts = { rest: 'GET /drafts', handler: async (ctx) => { const repository = await (async () => ctx.service?.getRepository('read'))(); const errorOrResults = await repository.listDrafts(); if (errorOrResults instanceof core_1.PreventedResult) { throw new core_1.PreventedResultError(errorOrResults); } const results = errorOrResults; return bson_1.EJSON.serialize(results); }, }; exports.listArchive = { rest: 'GET /archive', handler: async (ctx) => { const repository = await (async () => ctx.service?.getRepository('read'))(); const errorOrResults = await repository.listArchive(); if (errorOrResults instanceof core_1.PreventedResult) { throw new core_1.PreventedResultError(errorOrResults); } const results = errorOrResults; return bson_1.EJSON.serialize(results); }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXVDO0FBRXZDLDRDQUEwRTtBQUMxRSw0Q0FBcUQ7QUFFeEMsUUFBQSxJQUFJLEdBQUc7SUFDbEIsSUFBSSxFQUFFLE9BQU87SUFDYixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQXNCLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFNUUsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxFQUFFLFFBQVE7WUFDZCxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3dCQUMzQixRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO3dCQUM3QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUN4QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3FCQUMxQjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLENBQUM7Z0JBQ2hCLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTthQUM5QyxDQUFlLENBQUM7UUFFakIsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDekMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sWUFBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ08sQ0FBQztBQUVFLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxhQUFhO0lBQ25CLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBc0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU1RSxNQUFNLGNBQWMsR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyRCxJQUFJLGNBQWMsWUFBWSxzQkFBZSxFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLDJCQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDL0IsT0FBTyxZQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDTyxDQUFDO0FBRUUsUUFBQSxXQUFXLEdBQUc7SUFDekIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFzQixFQUFFLEVBQUU7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTVFLE1BQU0sY0FBYyxHQUFHLE1BQU0sVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RELElBQUksY0FBYyxZQUFZLHNCQUFlLEVBQUUsQ0FBQztZQUM5QyxNQUFNLElBQUksMkJBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQztRQUMvQixPQUFPLFlBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNPLENBQUMifQ==