fix clan vault not showing its contents when loading into dojo

This commit is contained in:
Sainan 2025-03-06 17:57:06 +01:00
parent ff1083c835
commit f7ab620c80
3 changed files with 29 additions and 15 deletions

View File

@ -3,6 +3,7 @@ import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
import { Guild } from "@/src/models/guildModel"; import { Guild } from "@/src/models/guildModel";
import { getAccountIdForRequest } from "@/src/services/loginService"; import { getAccountIdForRequest } from "@/src/services/loginService";
import { toOid } from "@/src/helpers/inventoryHelpers"; import { toOid } from "@/src/helpers/inventoryHelpers";
import { getGuildVault } from "@/src/services/guildService";
const getGuildController: RequestHandler = async (req, res) => { const getGuildController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req); const accountId = await getAccountIdForRequest(req);
@ -62,7 +63,8 @@ const getGuildController: RequestHandler = async (req, res) => {
Permissions: 4096 Permissions: 4096
} }
], ],
Tier: 1 Tier: 1,
Vault: getGuildVault(guild)
}); });
return; return;
} }

View File

@ -3,7 +3,13 @@ import { getAccountIdForRequest } from "@/src/services/loginService";
import { getInventory } from "@/src/services/inventoryService"; import { getInventory } from "@/src/services/inventoryService";
import { Guild, TGuildDatabaseDocument } from "@/src/models/guildModel"; import { Guild, TGuildDatabaseDocument } from "@/src/models/guildModel";
import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel"; 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 { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
import { Types } from "mongoose"; import { Types } from "mongoose";
import { ExportDojoRecipes } from "warframe-public-export-plus"; import { ExportDojoRecipes } from "warframe-public-export-plus";
@ -30,6 +36,14 @@ export const getGuildForRequestEx = async (
return guild; return guild;
}; };
export const getGuildVault = (guild: TGuildDatabaseDocument): IGuildVault => {
return {
DojoRefundRegularCredits: guild.VaultRegularCredits,
DojoRefundMiscItems: guild.VaultMiscItems,
DojoRefundPremiumCredits: guild.VaultPremiumCredits
};
};
export const getDojoClient = async ( export const getDojoClient = async (
guild: TGuildDatabaseDocument, guild: TGuildDatabaseDocument,
status: number, status: number,
@ -41,11 +55,7 @@ export const getDojoClient = async (
Tier: 1, Tier: 1,
FixedContributions: true, FixedContributions: true,
DojoRevision: 1, DojoRevision: 1,
Vault: { Vault: getGuildVault(guild),
DojoRefundRegularCredits: guild.VaultRegularCredits,
DojoRefundMiscItems: guild.VaultMiscItems,
DojoRefundPremiumCredits: guild.VaultPremiumCredits
},
RevisionTime: Math.round(Date.now() / 1000), RevisionTime: Math.round(Date.now() / 1000),
Energy: guild.DojoEnergy, Energy: guild.DojoEnergy,
Capacity: guild.DojoCapacity, Capacity: guild.DojoCapacity,

View File

@ -17,6 +17,15 @@ export interface IGuildDatabase extends IGuild {
TechProjects?: ITechProjectDatabase[]; TechProjects?: ITechProjectDatabase[];
} }
export interface IGuildVault {
DojoRefundRegularCredits?: number;
DojoRefundMiscItems?: IMiscItem[];
DojoRefundPremiumCredits?: number;
ShipDecorations?: ITypeCount[];
FusionTreasures?: IFusionTreasure[];
DecoRecipes?: ITypeCount[]; // Event Trophies
}
export interface IDojoClient { export interface IDojoClient {
_id: IOid; // ID of the guild _id: IOid; // ID of the guild
Name: string; Name: string;
@ -24,14 +33,7 @@ export interface IDojoClient {
FixedContributions: boolean; FixedContributions: boolean;
DojoRevision: number; DojoRevision: number;
AllianceId?: IOid; AllianceId?: IOid;
Vault?: { Vault?: IGuildVault;
DojoRefundRegularCredits?: number;
DojoRefundMiscItems?: IMiscItem[];
DojoRefundPremiumCredits?: number;
ShipDecorations?: ITypeCount[];
FusionTreasures?: IFusionTreasure[];
DecoRecipes?: ITypeCount[]; // Event Trophies
};
Class?: number; // Level Class?: number; // Level
RevisionTime: number; RevisionTime: number;
Energy: number; Energy: number;