loopback3-xtotalcount
Version:
Add X-Total-Count header to all search requests for Loopback 3.0
25 lines (22 loc) • 640 B
JavaScript
module.exports = function (app, options) {
var remotes = app.remotes();
// Set X-Total-Count for all search requests
var applyXTotal = function (ctx, next) {
var filter;
if (ctx.args && ctx.args.filter) {
filter = ctx.args.filter.where;
}
if (!ctx.res._headerSent) {
this.count(filter, function (err, count) {
ctx.res.set('X-Total-Count', count);
next();
});
} else {
next();
}
};
var pattern = options && Array.isArray(options.pattern) ? options.pattern : ['*.find'];
for (var i=pattern.length-1; i>=0; i--) {
remotes.after(pattern[i], applyXTotal);
}
};