forked from OpenWF/SpaceNinjaServer
chore: run save operations in parallel where possible (#1401)
Reviewed-on: OpenWF/SpaceNinjaServer#1401 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
054abee62c
commit
9e0dd3e0a5
@ -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
|
||||
|
@ -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();
|
||||
};
|
||||
|
||||
|
@ -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)),
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user