返回提交历史
Added
src/controllers/api/crewMembersController.ts
+28
-0
Modified
src/routes/api.ts
+2
-0
Modified
src/types/inventoryTypes/inventoryTypes.ts
+1
-1
XFEstudio/XFESpaceNinjaServer
feat: manage crew members (#1734)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1734 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
7040d422
代码差异
3 个文件
+31
-1
@@ -0,0 +1,28 @@
1
import { getJSONfromString } from "@/src/helpers/stringHelpers";
2
import { getInventory } from "@/src/services/inventoryService";
3
import { getAccountIdForRequest } from "@/src/services/loginService";
4
import { ICrewMemberClient } from "@/src/types/inventoryTypes/inventoryTypes";
5
import { RequestHandler } from "express";
6
import { Types } from "mongoose";
7
8
export const crewMembersController: RequestHandler = async (req, res) => {
9
const accountId = await getAccountIdForRequest(req);
10
const inventory = await getInventory(accountId, "CrewMembers");
11
const data = getJSONfromString<ICrewMembersRequest>(String(req.body));
12
const dbCrewMember = inventory.CrewMembers.id(data.crewMember.ItemId.$oid)!;
13
dbCrewMember.AssignedRole = data.crewMember.AssignedRole;
14
dbCrewMember.SkillEfficiency = data.crewMember.SkillEfficiency;
15
dbCrewMember.WeaponConfigIdx = data.crewMember.WeaponConfigIdx;
16
dbCrewMember.WeaponId = new Types.ObjectId(data.crewMember.WeaponId.$oid);
17
dbCrewMember.Configs = data.crewMember.Configs;
18
dbCrewMember.SecondInCommand = data.crewMember.SecondInCommand;
19
await inventory.save();
20
res.json({
21
crewMemberId: data.crewMember.ItemId.$oid,
22
NemesisFingerprint: data.crewMember.NemesisFingerprint
23
});
24
};
25
26
interface ICrewMembersRequest {
27
crewMember: ICrewMemberClient;
28
}
@@ -28,6 +28,7 @@ import { contributeToVaultController } from "@/src/controllers/api/contributeToV
28
28
import { createAllianceController } from "@/src/controllers/api/createAllianceController";
29
29
import { createGuildController } from "@/src/controllers/api/createGuildController";
30
30
import { creditsController } from "@/src/controllers/api/creditsController";
31
import { crewMembersController } from "@/src/controllers/api/crewMembersController";
31
32
import { crewShipIdentifySalvageController } from "@/src/controllers/api/crewShipIdentifySalvageController";
32
33
import { customizeGuildRanksController } from "@/src/controllers/api/customizeGuildRanksController";
33
34
import { customObstacleCourseLeaderboardController } from "@/src/controllers/api/customObstacleCourseLeaderboardController";
@@ -222,6 +223,7 @@ apiRouter.post("/contributeToDojoComponent.php", contributeToDojoComponentContro
222
223
apiRouter.post("/contributeToVault.php", contributeToVaultController);
223
224
apiRouter.post("/createAlliance.php", createAllianceController);
224
225
apiRouter.post("/createGuild.php", createGuildController);
226
apiRouter.post("/crewMembers.php", crewMembersController);
225
227
apiRouter.post("/crewShipIdentifySalvage.php", crewShipIdentifySalvageController);
226
228
apiRouter.post("/customizeGuildRanks.php", customizeGuildRanksController);
227
229
apiRouter.post("/customObstacleCourseLeaderboard.php", customObstacleCourseLeaderboardController);
@@ -489,7 +489,7 @@ export interface ICrewMemberClient {
489
489
XP: number;
490
490
PowersuitType: string;
491
491
Configs: IItemConfig[];
492
SecondInCommand: boolean;
492
SecondInCommand: boolean; // on call
493
493
ItemId: IOid;
494
494
}
495
495