diff --git a/src/controllers/api/contributeToDojoComponentController.ts b/src/controllers/api/contributeToDojoComponentController.ts index acdbf8a4..6d0016eb 100644 --- a/src/controllers/api/contributeToDojoComponentController.ts +++ b/src/controllers/api/contributeToDojoComponentController.ts @@ -64,9 +64,7 @@ export const contributeToDojoComponentController: RequestHandler = async (req, r } } - await guild.save(); - await inventory.save(); - await guildMember.save(); + await Promise.all([guild.save(), inventory.save(), guildMember.save()]); res.json({ ...(await getDojoClient(guild, 0, component._id)), InventoryChanges: inventoryChanges diff --git a/src/controllers/api/contributeToVaultController.ts b/src/controllers/api/contributeToVaultController.ts index 74dc91a4..7960c951 100644 --- a/src/controllers/api/contributeToVaultController.ts +++ b/src/controllers/api/contributeToVaultController.ts @@ -4,14 +4,20 @@ import { addVaultMiscItems, getGuildForRequestEx } from "@/src/services/guildService"; -import { addFusionTreasures, addMiscItems, addShipDecorations, getInventory } from "@/src/services/inventoryService"; +import { + addFusionTreasures, + addMiscItems, + addShipDecorations, + getInventory, + updateCurrency +} from "@/src/services/inventoryService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { IFusionTreasure, IMiscItem, ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes"; import { RequestHandler } from "express"; export const contributeToVaultController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); - const inventory = await getInventory(accountId); + const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures"); const guild = await getGuildForRequestEx(req, inventory); const guildMember = (await GuildMember.findOne( { accountId, guildId: guild._id }, @@ -20,6 +26,8 @@ export const contributeToVaultController: RequestHandler = async (req, res) => { const request = JSON.parse(String(req.body)) as IContributeToVaultRequest; if (request.RegularCredits) { + updateCurrency(inventory, request.RegularCredits, false); + guild.VaultRegularCredits ??= 0; guild.VaultRegularCredits += request.RegularCredits; @@ -52,9 +60,7 @@ export const contributeToVaultController: RequestHandler = async (req, res) => { } } - await guild.save(); - await inventory.save(); - await guildMember.save(); + await Promise.all([guild.save(), inventory.save(), guildMember.save()]); res.end(); }; diff --git a/src/controllers/api/dojoComponentRushController.ts b/src/controllers/api/dojoComponentRushController.ts index 33aec126..899ed0af 100644 --- a/src/controllers/api/dojoComponentRushController.ts +++ b/src/controllers/api/dojoComponentRushController.ts @@ -47,13 +47,11 @@ export const dojoComponentRushController: RequestHandler = async (req, res) => { } } - await guild.save(); - await inventory.save(); - const guildMember = (await GuildMember.findOne({ accountId, guildId: guild._id }, "PremiumCreditsContributed"))!; guildMember.PremiumCreditsContributed ??= 0; guildMember.PremiumCreditsContributed += request.Amount; - await guildMember.save(); + + await Promise.all([guild.save(), inventory.save(), guildMember.save()]); res.json({ ...(await getDojoClient(guild, 0, component._id)), diff --git a/src/controllers/api/guildTechController.ts b/src/controllers/api/guildTechController.ts index 08909b08..5b0b5374 100644 --- a/src/controllers/api/guildTechController.ts +++ b/src/controllers/api/guildTechController.ts @@ -157,9 +157,7 @@ export const guildTechController: RequestHandler = async (req, res) => { // Check if research is fully funded now. await processGuildTechProjectContributionsUpdate(guild, techProject); - await guild.save(); - await inventory.save(); - await guildMember.save(); + await Promise.all([guild.save(), inventory.save(), guildMember.save()]); res.json({ InventoryChanges: inventoryChanges, Vault: getGuildVault(guild)