From ba9b8cc736b966206e7095c9cce43a6c9957373d Mon Sep 17 00:00:00 2001 From: Sainan Date: Wed, 12 Feb 2025 04:57:43 +0100 Subject: [PATCH] use getDojoClient for all responses to avoid double-reloading --- src/controllers/api/getGuildDojoController.ts | 2 +- .../api/queueDojoComponentDestructionController.ts | 6 ++---- src/controllers/api/setDojoComponentMessageController.ts | 2 +- src/controllers/api/startDojoRecipeController.ts | 6 ++---- src/services/guildService.ts | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/controllers/api/getGuildDojoController.ts b/src/controllers/api/getGuildDojoController.ts index c3a19056..9d7ed93f 100644 --- a/src/controllers/api/getGuildDojoController.ts +++ b/src/controllers/api/getGuildDojoController.ts @@ -25,5 +25,5 @@ export const getGuildDojoController: RequestHandler = async (req, res) => { await guild.save(); } - res.json(getDojoClient(guild)); + res.json(getDojoClient(guild, 0)); }; diff --git a/src/controllers/api/queueDojoComponentDestructionController.ts b/src/controllers/api/queueDojoComponentDestructionController.ts index da84c40f..7f612896 100644 --- a/src/controllers/api/queueDojoComponentDestructionController.ts +++ b/src/controllers/api/queueDojoComponentDestructionController.ts @@ -1,4 +1,4 @@ -import { getGuildForRequest } from "@/src/services/guildService"; +import { getDojoClient, getGuildForRequest } from "@/src/services/guildService"; import { RequestHandler } from "express"; import { ExportDojoRecipes } from "warframe-public-export-plus"; @@ -15,7 +15,5 @@ export const queueDojoComponentDestructionController: RequestHandler = async (re guild.DojoEnergy -= room.energy; } await guild.save(); - res.json({ - DojoRequestStatus: 1 - }); + res.json(getDojoClient(guild, 1)); }; diff --git a/src/controllers/api/setDojoComponentMessageController.ts b/src/controllers/api/setDojoComponentMessageController.ts index 179cddf4..714dd7a5 100644 --- a/src/controllers/api/setDojoComponentMessageController.ts +++ b/src/controllers/api/setDojoComponentMessageController.ts @@ -12,7 +12,7 @@ export const setDojoComponentMessageController: RequestHandler = async (req, res component.Message = payload.Message; } await guild.save(); - res.json(getDojoClient(guild)); + res.json(getDojoClient(guild, 1)); }; type SetDojoComponentMessageRequest = { Name: string } | { Message: string }; diff --git a/src/controllers/api/startDojoRecipeController.ts b/src/controllers/api/startDojoRecipeController.ts index 625912d5..6fd2b5a9 100644 --- a/src/controllers/api/startDojoRecipeController.ts +++ b/src/controllers/api/startDojoRecipeController.ts @@ -1,6 +1,6 @@ import { RequestHandler } from "express"; import { IDojoComponentClient } from "@/src/types/guildTypes"; -import { getGuildForRequest } from "@/src/services/guildService"; +import { getDojoClient, getGuildForRequest } from "@/src/services/guildService"; import { Types } from "mongoose"; import { ExportDojoRecipes } from "warframe-public-export-plus"; @@ -30,7 +30,5 @@ export const startDojoRecipeController: RequestHandler = async (req, res) => { CompletionTime: new Date(Date.now()) // TOOD: Omit this field & handle the "Collecting Materials" state. }); await guild.save(); - res.json({ - DojoRequestStatus: 0 - }); + res.json(getDojoClient(guild, 0)); }; diff --git a/src/services/guildService.ts b/src/services/guildService.ts index 723c6348..210bc1a6 100644 --- a/src/services/guildService.ts +++ b/src/services/guildService.ts @@ -28,7 +28,7 @@ export const getGuildForRequestEx = async ( return guild; }; -export const getDojoClient = (guild: TGuildDatabaseDocument): IDojoClient => { +export const getDojoClient = (guild: TGuildDatabaseDocument, status: number): IDojoClient => { const dojo: IDojoClient = { _id: { $oid: guild._id.toString() }, Name: guild.Name, @@ -38,7 +38,7 @@ export const getDojoClient = (guild: TGuildDatabaseDocument): IDojoClient => { RevisionTime: Math.round(Date.now() / 1000), Energy: guild.DojoEnergy, Capacity: guild.DojoCapacity, - DojoRequestStatus: 1, + DojoRequestStatus: status, DojoComponents: [] }; guild.DojoComponents!.forEach(dojoComponent => {