From f7ab620c80bd1d597e988dfd89711a85391e208f Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 6 Mar 2025 17:57:06 +0100 Subject: [PATCH] fix clan vault not showing its contents when loading into dojo --- src/controllers/api/getGuildController.ts | 4 +++- src/services/guildService.ts | 22 ++++++++++++++++------ src/types/guildTypes.ts | 18 ++++++++++-------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/controllers/api/getGuildController.ts b/src/controllers/api/getGuildController.ts index d112f996..6703d87c 100644 --- a/src/controllers/api/getGuildController.ts +++ b/src/controllers/api/getGuildController.ts @@ -3,6 +3,7 @@ import { Inventory } from "@/src/models/inventoryModels/inventoryModel"; import { Guild } from "@/src/models/guildModel"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { toOid } from "@/src/helpers/inventoryHelpers"; +import { getGuildVault } from "@/src/services/guildService"; const getGuildController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); @@ -62,7 +63,8 @@ const getGuildController: RequestHandler = async (req, res) => { Permissions: 4096 } ], - Tier: 1 + Tier: 1, + Vault: getGuildVault(guild) }); return; } diff --git a/src/services/guildService.ts b/src/services/guildService.ts index 905aff05..70abac99 100644 --- a/src/services/guildService.ts +++ b/src/services/guildService.ts @@ -3,7 +3,13 @@ import { getAccountIdForRequest } from "@/src/services/loginService"; import { getInventory } from "@/src/services/inventoryService"; import { Guild, TGuildDatabaseDocument } from "@/src/models/guildModel"; import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel"; -import { IDojoClient, IDojoComponentClient, IDojoContributable, IDojoDecoClient } from "@/src/types/guildTypes"; +import { + IDojoClient, + IDojoComponentClient, + IDojoContributable, + IDojoDecoClient, + IGuildVault +} from "@/src/types/guildTypes"; import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers"; import { Types } from "mongoose"; import { ExportDojoRecipes } from "warframe-public-export-plus"; @@ -30,6 +36,14 @@ export const getGuildForRequestEx = async ( return guild; }; +export const getGuildVault = (guild: TGuildDatabaseDocument): IGuildVault => { + return { + DojoRefundRegularCredits: guild.VaultRegularCredits, + DojoRefundMiscItems: guild.VaultMiscItems, + DojoRefundPremiumCredits: guild.VaultPremiumCredits + }; +}; + export const getDojoClient = async ( guild: TGuildDatabaseDocument, status: number, @@ -41,11 +55,7 @@ export const getDojoClient = async ( Tier: 1, FixedContributions: true, DojoRevision: 1, - Vault: { - DojoRefundRegularCredits: guild.VaultRegularCredits, - DojoRefundMiscItems: guild.VaultMiscItems, - DojoRefundPremiumCredits: guild.VaultPremiumCredits - }, + Vault: getGuildVault(guild), RevisionTime: Math.round(Date.now() / 1000), Energy: guild.DojoEnergy, Capacity: guild.DojoCapacity, diff --git a/src/types/guildTypes.ts b/src/types/guildTypes.ts index dd997995..b3081b94 100644 --- a/src/types/guildTypes.ts +++ b/src/types/guildTypes.ts @@ -17,6 +17,15 @@ export interface IGuildDatabase extends IGuild { TechProjects?: ITechProjectDatabase[]; } +export interface IGuildVault { + DojoRefundRegularCredits?: number; + DojoRefundMiscItems?: IMiscItem[]; + DojoRefundPremiumCredits?: number; + ShipDecorations?: ITypeCount[]; + FusionTreasures?: IFusionTreasure[]; + DecoRecipes?: ITypeCount[]; // Event Trophies +} + export interface IDojoClient { _id: IOid; // ID of the guild Name: string; @@ -24,14 +33,7 @@ export interface IDojoClient { FixedContributions: boolean; DojoRevision: number; AllianceId?: IOid; - Vault?: { - DojoRefundRegularCredits?: number; - DojoRefundMiscItems?: IMiscItem[]; - DojoRefundPremiumCredits?: number; - ShipDecorations?: ITypeCount[]; - FusionTreasures?: IFusionTreasure[]; - DecoRecipes?: ITypeCount[]; // Event Trophies - }; + Vault?: IGuildVault; Class?: number; // Level RevisionTime: number; Energy: number;