返回提交历史
Modified
src/controllers/api/updateChallengeProgressController.ts
+13
-6
Modified
src/services/inventoryService.ts
+1
-13
Modified
src/types/requestTypes.ts
+0
-6
XFEstudio/XFESpaceNinjaServer
chore: use inventory projection for updateChallengeProgress (#1313)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1313
4afc8bc8
代码差异
3 个文件
+14
-25
@@ -1,16 +1,23 @@
1
1
import { RequestHandler } from "express";
2
2
import { getJSONfromString } from "@/src/helpers/stringHelpers";
3
3
import { getAccountIdForRequest } from "@/src/services/loginService";
4
import { updateChallengeProgress } from "@/src/services/inventoryService";
5
import { IUpdateChallengeProgressRequest } from "@/src/types/requestTypes";
4
import { addChallenges, addSeasonalChallengeHistory, getInventory } from "@/src/services/inventoryService";
5
import { IChallengeProgress, ISeasonChallenge } from "@/src/types/inventoryTypes/inventoryTypes";
6
6
7
const updateChallengeProgressController: RequestHandler = async (req, res) => {
8
const payload = getJSONfromString<IUpdateChallengeProgressRequest>(String(req.body));
7
export const updateChallengeProgressController: RequestHandler = async (req, res) => {
8
const challenges = getJSONfromString<IUpdateChallengeProgressRequest>(String(req.body));
9
9
const accountId = await getAccountIdForRequest(req);
10
10
11
await updateChallengeProgress(payload, accountId);
11
const inventory = await getInventory(accountId, "ChallengeProgress SeasonChallengeHistory");
12
addChallenges(inventory, challenges.ChallengeProgress);
13
addSeasonalChallengeHistory(inventory, challenges.SeasonChallengeHistory);
14
await inventory.save();
12
15
13
16
res.status(200).end();
14
17
};
15
18
16
export { updateChallengeProgressController };
19
interface IUpdateChallengeProgressRequest {
20
ChallengeProgress: IChallengeProgress[];
21
SeasonChallengeHistory: ISeasonChallenge[];
22
SeasonChallengeCompletions: ISeasonChallenge[];
23
}
@@ -28,7 +28,7 @@ import {
28
28
IUpgradeClient
29
29
} from "@/src/types/inventoryTypes/inventoryTypes";
30
30
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
31
import { IMissionInventoryUpdateRequest, IUpdateChallengeProgressRequest } from "../types/requestTypes";
31
import { IMissionInventoryUpdateRequest } from "../types/requestTypes";
32
32
import { logger } from "@/src/utils/logger";
33
33
import { convertInboxMessage, fromStoreItem, getExalted, getKeyChainItems } from "@/src/services/itemDataService";
34
34
import {
@@ -1205,18 +1205,6 @@ export const addFocusXpIncreases = (inventory: TInventoryDatabaseDocument, focus
1205
1205
inventory.FocusXP.AP_WARD += focusXpPlus[FocusType.AP_WARD];
1206
1206
};
1207
1207
1208
export const updateChallengeProgress = async (
1209
challenges: IUpdateChallengeProgressRequest,
1210
accountId: string
1211
): Promise<void> => {
1212
const inventory = await getInventory(accountId);
1213
1214
addChallenges(inventory, challenges.ChallengeProgress);
1215
addSeasonalChallengeHistory(inventory, challenges.SeasonChallengeHistory);
1216
1217
await inventory.save();
1218
};
1219
1220
1208
export const addSeasonalChallengeHistory = (
1221
1209
inventory: TInventoryDatabaseDocument,
1222
1210
itemsArray: ISeasonChallenge[] | undefined
@@ -25,12 +25,6 @@ export interface IAffiliationChange {
25
25
Title: number;
26
26
}
27
27
28
export interface IUpdateChallengeProgressRequest {
29
ChallengeProgress: IChallengeProgress[];
30
SeasonChallengeHistory: ISeasonChallenge[];
31
SeasonChallengeCompletions: ISeasonChallenge[];
32
}
33
34
28
export type IMissionInventoryUpdateRequest = {
35
29
MiscItems?: ITypeCount[];
36
30
Recipes?: ITypeCount[];