From 4a80d37b091ab07fc6099a34f6f7150b59cba78e Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 11 Mar 2025 20:41:18 -0700 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20src/controllers/api/create?= =?UTF-8?q?GuildDojoController.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/createGuildDojoController.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/controllers/api/createGuildDojoController.ts diff --git a/src/controllers/api/createGuildDojoController.ts b/src/controllers/api/createGuildDojoController.ts new file mode 100644 index 00000000..16172cdd --- /dev/null +++ b/src/controllers/api/createGuildDojoController.ts @@ -0,0 +1,41 @@ +import { getJSONfromString } from "@/src/helpers/stringHelpers"; +import { getDojoClient, getGuildForRequest, getGuildLogForRequest } from "@/src/services/guildService"; +import { IOid } from "@/src/types/commonTypes"; +import { RequestHandler } from "express"; +import { Types } from "mongoose"; + +// eslint-disable-next-line @typescript-eslint/no-misused-promises +export const createGuildDojoController: RequestHandler = async (req, res) => { + const guild = await getGuildForRequest(req); + const guildLog = await getGuildLogForRequest(req); + const payload = getJSONfromString(String(req.body)) as ICreateGuildDojoRequest; + // Populate dojo info if not present + var componentId = new Types.ObjectId(); + if (!guild.DojoComponents || guild.DojoComponents.length == 0) { + guild.DojoComponents?.push({ + _id: componentId, + pf: payload.SpawnComponent.pf, + ppf: "", + CompletionTime: new Date(Date.now()), + DecoCapacity: 600 + }); + await guild.save(); + guildLog.RoomChanges.push({ + dateTime: new Date(Date.now()), + entryType: 1, + details: payload.SpawnComponent.pf + }); + await guildLog.save(); + } + res.json(await getDojoClient(guild, 0, componentId)); +}; + +export interface ICreateGuildDojoRequest { + SpawnComponent: ICreateGuildDojoSpawnComponent; +} + +export interface ICreateGuildDojoSpawnComponent { + id: IOid; + pf: string; + ppf: string; +}