UNPKG

nodebb-plugin-l24u-lk

Version:

This is lk for l24u.ru

52 lines (42 loc) 1.75 kB
(function (Database) { 'use strict'; var async = require('async'); var nodebb = require('./nodebb'), constants = require('./constants'); var db = nodebb.db, user = nodebb.user; //FIXME Remove Points object if User is deleted or create utility method for ACP Database.delete = function (uid, done) { db.sortedSetRemove(constants.NAMESPACE, uid, done); }; Database.getPoints = function (uid, done) { db.sortedSetScore(constants.NAMESPACE, uid, done); }; Database.getUsers = function (limit, done) { async.waterfall([ async.apply(db.getSortedSetRevRangeWithScores, constants.NAMESPACE, 0, limit), function (scoredUsers, next) { var scores = {}, ids = scoredUsers.map(function (scoredUser) { scores[scoredUser.value] = scoredUser.score; return scoredUser.value; }); next(null, ids, scores); }, function (uids, scoreMap, next) { user.getUsersFields(uids, ['picture', 'username', 'userslug'], function (error, users) { if (error) { return next(error); } next(null, users.map(function (user) { user.points = scoreMap[user.uid] || 0; return user; })); }); } ], done); }; Database.incrementBy = function (uid, increment, done) { db.sortedSetIncrBy(constants.NAMESPACE, increment, uid, done); }; })(module.exports);