feat: reset obstacle course #2523
@ -3,11 +3,13 @@ import {
|
|||||||
getGuildForRequestEx,
|
getGuildForRequestEx,
|
||||||
hasAccessToDojo,
|
hasAccessToDojo,
|
||||||
hasGuildPermission,
|
hasGuildPermission,
|
||||||
|
refundDojoDeco,
|
||||||
removeDojoDeco
|
removeDojoDeco
|
||||||
} from "@/src/services/guildService";
|
} from "@/src/services/guildService";
|
||||||
import { getInventory } from "@/src/services/inventoryService";
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
import { GuildPermission } from "@/src/types/guildTypes";
|
import { GuildPermission } from "@/src/types/guildTypes";
|
||||||
|
import { logger } from "@/src/utils/logger";
|
||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
export const destroyDojoDecoController: RequestHandler = async (req, res) => {
|
export const destroyDojoDecoController: RequestHandler = async (req, res) => {
|
||||||
@ -18,9 +20,20 @@ export const destroyDojoDecoController: RequestHandler = async (req, res) => {
|
|||||||
res.json({ DojoRequestStatus: -1 });
|
res.json({ DojoRequestStatus: -1 });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest;
|
const request = JSON.parse(String(req.body)) as IDestroyDojoDecoRequest | IClearObstacleCourseRequest;
|
||||||
|
if ("DecoType" in request) {
|
||||||
removeDojoDeco(guild, request.ComponentId, request.DecoId);
|
removeDojoDeco(guild, request.ComponentId, request.DecoId);
|
||||||
|
} else if (request.Act == "cObst") {
|
||||||
|
const component = guild.DojoComponents.id(request.ComponentId)!;
|
||||||
|
if (component.Decos) {
|
||||||
|
for (const deco of component.Decos) {
|
||||||
|
refundDojoDeco(guild, component, deco);
|
||||||
|
}
|
||||||
|
component.Decos.splice(0, component.Decos.length);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.error(`unhandled destroyDojoDeco request`, request);
|
||||||
|
}
|
||||||
|
|
||||||
await guild.save();
|
await guild.save();
|
||||||
res.json(await getDojoClient(guild, 0, request.ComponentId));
|
res.json(await getDojoClient(guild, 0, request.ComponentId));
|
||||||
@ -31,3 +44,8 @@ interface IDestroyDojoDecoRequest {
|
|||||||
ComponentId: string;
|
ComponentId: string;
|
||||||
DecoId: string;
|
DecoId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface IClearObstacleCourseRequest {
|
||||||
|
ComponentId: string;
|
||||||
|
Act: "cObst" | "maybesomethingelsewedontknowabout";
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user