added skip and limit

This commit is contained in:
Jack 2021-09-06 20:36:09 +01:00
parent 0b1e7cd980
commit 5b85f11a19
2 changed files with 13 additions and 4 deletions

View file

@ -3,13 +3,19 @@ const LeaderboardsDAO = require("../../dao/leaderboards");
class LeaderboardsController {
static async get(req, res, next) {
try {
const { language, mode, mode2 } = req.query;
if (!language || !mode || !mode2) {
const { language, mode, mode2, skip, limit } = req.query;
if (!language || !mode || !mode2 || !skip) {
return res.status(400).json({
message: "Missing parameters",
});
}
let retval = await LeaderboardsDAO.get(mode, mode2, language);
let retval = await LeaderboardsDAO.get(
mode,
mode2,
language,
skip,
limit
);
retval.forEach((item) => {
delete item.uid;
});

View file

@ -3,10 +3,13 @@ const { mongoDB } = require("../init/mongodb");
const { ObjectID } = require("mongodb");
class LeaderboardsDAO {
static async get(mode, mode2, language) {
static async get(mode, mode2, language, skip, limit = 30) {
if (limit > 30 || limit === 0) limit = 30;
const preset = await mongoDB()
.collection(`leaderboards.${language}.${mode}.${mode2}`)
.find()
.skip(parseInt(skip))
.limit(parseInt(limit))
.toArray();
return preset;
}