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

XFESpaceNinjaServer

A simple server for a small space ninja game

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

XFEstudio/XFESpaceNinjaServer

chore: use inventory projection for updateChallengeProgress (#1313)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1313

4afc8bc8
Sainan <sainan@calamity.inc>
提交于

代码差异

3 个文件 +14 -25
Modified src/controllers/api/updateChallengeProgressController.ts +13 -6
@@ -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 }
Modified src/services/inventoryService.ts +1 -13
@@ -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
Modified src/types/requestTypes.ts +0 -6
@@ -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[];