diff --git a/lib/backend.js b/lib/backend.js index 7ddb245..a2887f2 100644 --- a/lib/backend.js +++ b/lib/backend.js @@ -2,10 +2,17 @@ const _ = require('lodash'); const express = require('express'); const bodyParser = require("body-parser"); const q = require("q"); +const auth = require('@screeps/backend/lib/game/api/auth'); module.exports = function (config, statsMod) { var storage = config.common.storage; + config.backend.features = config.backend.features || []; + config.backend.features.push({ + name: 'screepsmod-stats', + version: require('../package.json').version, + }); + config.backend.on('expressPreConfig', function (app) { app.use(bodyParser.json()); @@ -32,6 +39,7 @@ module.exports = function (config, statsMod) { router.get('/list', (req, res) => { var { limit, season, offset, mode } = req.query; + limit = parseInt(limit, 10); if (limit > 20 || limit < 0 || !_.has(statsMod.leaderboards, mode)) { res.send({ error: "invalid params" }); return; @@ -135,7 +143,7 @@ module.exports = function (config, statsMod) { }); }); - router.get('/overview', (req, res) => { + router.get('/overview', auth.tokenAuth, (req, res) => { var interval = req.query.interval || '8'; var queryStatName = req.query.statName || 'energyHarvested'; @@ -154,6 +162,7 @@ module.exports = function (config, statsMod) { var query; if (req.query.id) query = { _id: req.query.id }; else if (req.query.username) query = { username: req.query.username }; + else if (req.user) query = { _id: req.user._id }; if (!query) { res.send({ error: "invalid params" }); return;