返回提交历史
Modified
src/controllers/api/contributeToDojoComponentController.ts
+1
-3
Modified
src/controllers/api/contributeToVaultController.ts
+11
-5
Modified
src/controllers/api/dojoComponentRushController.ts
+2
-4
Modified
src/controllers/api/guildTechController.ts
+1
-3
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
代码差异
4 个文件
+15
-15
@@ -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
@@ -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
@@ -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)),
@@ -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)