implement level filters
This commit is contained in:
parent
1c56286cd8
commit
a9fee71c6a
|
@ -51,6 +51,39 @@ module.exports = (app, db) : void => {
|
||||||
})
|
})
|
||||||
.toArray();
|
.toArray();
|
||||||
|
|
||||||
|
switch (Number(req.body.type)) {
|
||||||
|
case 1: // most downloaded
|
||||||
|
levels.sort((a, b) => b.downloads - a.downloads);
|
||||||
|
break;
|
||||||
|
case 2: // most liked
|
||||||
|
levels.sort((a, b) => b.likes - a.likes);
|
||||||
|
break;
|
||||||
|
case 3: // trending
|
||||||
|
levels.filter(l => {
|
||||||
|
l.timestamp || 0 > Date.now() - 604800000;
|
||||||
|
});
|
||||||
|
levels.sort((a, b) => b.downloads - a.downloads);
|
||||||
|
break;
|
||||||
|
case 4: // recent
|
||||||
|
levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0);
|
||||||
|
break;
|
||||||
|
case 7: // ~ M a G i C ~
|
||||||
|
levels.filter(l => {
|
||||||
|
l.objects || 0 > 1000;
|
||||||
|
});
|
||||||
|
levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0);
|
||||||
|
break;
|
||||||
|
case 11: // awarded
|
||||||
|
levels.filter(l => {
|
||||||
|
l.stars > 0;
|
||||||
|
});
|
||||||
|
levels.sort((a, b) => b.timestamp || 0 - a.timestamp || 0);
|
||||||
|
break;
|
||||||
|
case 12: // TODO: followed
|
||||||
|
case 13: // TODO: friends
|
||||||
|
levels.filter(() => false);
|
||||||
|
}
|
||||||
|
|
||||||
let offset = Math.max(Number(req.body.page) * 10 - 1, 0);
|
let offset = Math.max(Number(req.body.page) * 10 - 1, 0);
|
||||||
|
|
||||||
const foundLevels = levels
|
const foundLevels = levels
|
||||||
|
|
Loading…
Reference in New Issue