agenda-admin
Version:
A dashboard for agenda.js
37 lines (36 loc) • 1.54 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.autocomplete = void 0;
const agenda_instance_1 = require("../agenda-instance");
const constants_1 = require("../constants");
const autocomplete = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const autocomplete = new RegExp(`.*${req.query.autocomplete}.*`, 'i');
const data = yield (0, agenda_instance_1.getAgendaInstance)()
._collection.aggregate([
{
$match: { name: { $regex: autocomplete } },
},
{
$group: {
_id: '$name',
name: { $first: '$name' },
},
},
{
$limit: constants_1.AUTOCOMPLETE_ITEMS,
},
])
.toArray();
res.locals.data = data;
next();
});
exports.autocomplete = autocomplete;