You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nodebb/src/meta/errors.js

39 lines
962 B
JavaScript

9 years ago
'use strict';
var async = require('async');
8 years ago
var validator = require('validator');
9 years ago
8 years ago
var db = require('../database');
var analytics = require('../analytics');
9 years ago
module.exports = function (Meta) {
9 years ago
Meta.errors = {};
Meta.errors.log404 = function (route, callback) {
callback = callback || function () {};
9 years ago
route = route.replace(/\/$/, ''); // remove trailing slashes
analytics.increment('errors:404');
db.sortedSetIncrBy('errors:404', 1, route, callback);
};
Meta.errors.get = function (escape, callback) {
async.waterfall([
function (next) {
db.getSortedSetRevRangeWithScores('errors:404', 0, 199, next);
},
function (data, next) {
data = data.map(function (nfObject) {
nfObject.value = escape ? validator.escape(String(nfObject.value || '')) : nfObject.value;
return nfObject;
});
next(null, data);
},
], callback);
9 years ago
};
Meta.errors.clear = function (callback) {
db.delete('errors:404', callback);
9 years ago
};
};