XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

chore: run save operations in parallel where possible (#1401)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1401 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

9e0dd3e0
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

4 个文件 +15 -15
Modified src/controllers/api/contributeToDojoComponentController.ts +1 -3
@@ -64,9 +64,7 @@ export const contributeToDojoComponentController: RequestHandler = async (req, r
64 64 }
65 65 }
66 66
67 await guild.save();
68 await inventory.save();
69 await guildMember.save();
67 await Promise.all([guild.save(), inventory.save(), guildMember.save()]);
70 68 res.json({
71 69 ...(await getDojoClient(guild, 0, component._id)),
72 70 InventoryChanges: inventoryChanges
Modified src/controllers/api/contributeToVaultController.ts +11 -5
@@ -4,14 +4,20 @@ import {
4 4 addVaultMiscItems,
5 5 getGuildForRequestEx
6 6 } from "@/src/services/guildService";
7 import { addFusionTreasures, addMiscItems, addShipDecorations, getInventory } from "@/src/services/inventoryService";
7 import {
8 addFusionTreasures,
9 addMiscItems,
10 addShipDecorations,
11 getInventory,
12 updateCurrency
13 } from "@/src/services/inventoryService";
8 14 import { getAccountIdForRequest } from "@/src/services/loginService";
9 15 import { IFusionTreasure, IMiscItem, ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
10 16 import { RequestHandler } from "express";
11 17
12 18 export const contributeToVaultController: RequestHandler = async (req, res) => {
13 19 const accountId = await getAccountIdForRequest(req);
14 const inventory = await getInventory(accountId);
20 const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures");
15 21 const guild = await getGuildForRequestEx(req, inventory);
16 22 const guildMember = (await GuildMember.findOne(
17 23 { accountId, guildId: guild._id },
@@ -20,6 +26,8 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
20 26 const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
21 27
22 28 if (request.RegularCredits) {
29 updateCurrency(inventory, request.RegularCredits, false);
30
23 31 guild.VaultRegularCredits ??= 0;
24 32 guild.VaultRegularCredits += request.RegularCredits;
25 33
@@ -52,9 +60,7 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
52 60 }
53 61 }
54 62
55 await guild.save();
56 await inventory.save();
57 await guildMember.save();
63 await Promise.all([guild.save(), inventory.save(), guildMember.save()]);
58 64 res.end();
59 65 };
60 66
Modified src/controllers/api/dojoComponentRushController.ts +2 -4
@@ -47,13 +47,11 @@ export const dojoComponentRushController: RequestHandler = async (req, res) => {
47 47 }
48 48 }
49 49
50 await guild.save();
51 await inventory.save();
52
53 50 const guildMember = (await GuildMember.findOne({ accountId, guildId: guild._id }, "PremiumCreditsContributed"))!;
54 51 guildMember.PremiumCreditsContributed ??= 0;
55 52 guildMember.PremiumCreditsContributed += request.Amount;
56 await guildMember.save();
53
54 await Promise.all([guild.save(), inventory.save(), guildMember.save()]);
57 55
58 56 res.json({
59 57 ...(await getDojoClient(guild, 0, component._id)),
Modified src/controllers/api/guildTechController.ts +1 -3
@@ -157,9 +157,7 @@ export const guildTechController: RequestHandler = async (req, res) => {
157 157 // Check if research is fully funded now.
158 158 await processGuildTechProjectContributionsUpdate(guild, techProject);
159 159
160 await guild.save();
161 await inventory.save();
162 await guildMember.save();
160 await Promise.all([guild.save(), inventory.save(), guildMember.save()]);
163 161 res.json({
164 162 InventoryChanges: inventoryChanges,
165 163 Vault: getGuildVault(guild)