返回提交历史
Modified
src/controllers/api/customObstacleCourseLeaderboardController.ts
+18
-2
XFEstudio/XFESpaceNinjaServer
feat: reset custom obstable course leaderboard (#2401)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2401 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
0416221d
代码差异
1 个文件
+18
-2
@@ -1,12 +1,15 @@
1
1
import { getJSONfromString } from "@/src/helpers/stringHelpers";
2
2
import { Guild } from "@/src/models/guildModel";
3
import { getAccountForRequest } from "@/src/services/loginService";
3
import { hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
4
import { getInventory } from "@/src/services/inventoryService";
5
import { getAccountForRequest, getAccountIdForRequest } from "@/src/services/loginService";
6
import { GuildPermission } from "@/src/types/guildTypes";
4
7
import { logger } from "@/src/utils/logger";
5
8
import { RequestHandler } from "express";
6
9
7
10
export const customObstacleCourseLeaderboardController: RequestHandler = async (req, res) => {
8
11
const data = getJSONfromString<ICustomObstacleCourseLeaderboardRequest>(String(req.body));
9
const guild = (await Guild.findById(data.g, "DojoComponents"))!;
12
const guild = (await Guild.findById(data.g, "DojoComponents Ranks"))!;
10
13
const component = guild.DojoComponents.id(data.c)!;
11
14
if (req.query.act == "f") {
12
15
res.json({
@@ -34,6 +37,19 @@ export const customObstacleCourseLeaderboardController: RequestHandler = async (
34
37
entry.r = ++r;
35
38
}
36
39
await guild.save();
40
res.status(200).end();
41
} else if (req.query.act == "c") {
42
// TOVERIFY: What clan permission is actually needed for this?
43
const accountId = await getAccountIdForRequest(req);
44
const inventory = await getInventory(accountId, "GuildId LevelKeys");
45
if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Decorator))) {
46
res.status(400).end();
47
return;
48
}
49
50
component.Leaderboard = undefined;
51
await guild.save();
52
37
53
res.status(200).end();
38
54
} else {
39
55
logger.debug(`data provided to ${req.path}: ${String(req.body)}`);