返回提交历史
Added
src/controllers/api/setShipFavouriteLoadoutController.ts
+31
-0
Modified
src/routes/api.ts
+2
-0
XFEstudio/XFESpaceNinjaServer
feat: implement setShipFavouriteLoadout.php (#662)
b8ef39ba
代码差异
2 个文件
+33
-0
@@ -0,0 +1,31 @@
1
import { getAccountIdForRequest } from "@/src/services/loginService";
2
import { RequestHandler } from "express";
3
import { getPersonalRooms } from "@/src/services/personalRoomsService";
4
import { IOid } from "@/src/types/commonTypes";
5
import { Types } from "mongoose";
6
7
export const setShipFavouriteLoadoutController: RequestHandler = async (req, res) => {
8
const accountId = await getAccountIdForRequest(req);
9
const personalRooms = await getPersonalRooms(accountId);
10
const body = JSON.parse(String(req.body)) as ISetShipFavouriteLoadoutRequest;
11
if (body.BootLocation != "SHOP") {
12
throw new Error(`unexpected BootLocation: ${body.BootLocation}`);
13
}
14
const display = personalRooms.TailorShop.FavouriteLoadouts.find(x => x.Tag == body.TagName);
15
if (display) {
16
display.LoadoutId = new Types.ObjectId(body.FavouriteLoadoutId.$oid);
17
} else {
18
personalRooms.TailorShop.FavouriteLoadouts.push({
19
Tag: body.TagName,
20
LoadoutId: new Types.ObjectId(body.FavouriteLoadoutId.$oid)
21
});
22
}
23
await personalRooms.save();
24
res.json({});
25
};
26
27
interface ISetShipFavouriteLoadoutRequest {
28
BootLocation: string;
29
FavouriteLoadoutId: IOid;
30
TagName: string;
31
}
@@ -55,6 +55,7 @@ import { setActiveShipController } from "@/src/controllers/api/setActiveShipCont
55
55
import { setBootLocationController } from "@/src/controllers/api/setBootLocationController";
56
56
import { setPlacedDecoInfoController } from "@/src/controllers/api/setPlacedDecoInfoController";
57
57
import { setShipCustomizationsController } from "@/src/controllers/api/setShipCustomizationsController";
58
import { setShipFavouriteLoadoutController } from "@/src/controllers/api/setShipFavouriteLoadoutController";
58
59
import { setSupportedSyndicateController } from "@/src/controllers/api/setSupportedSyndicateController";
59
60
import { setWeaponSkillTreeController } from "../controllers/api/setWeaponSkillTreeController";
60
61
import { shipDecorationsController } from "@/src/controllers/api/shipDecorationsController";
@@ -136,6 +137,7 @@ apiRouter.post("/saveLoadout.php", saveLoadoutController);
136
137
apiRouter.post("/sell.php", sellController);
137
138
apiRouter.post("/setPlacedDecoInfo.php", setPlacedDecoInfoController);
138
139
apiRouter.post("/setShipCustomizations.php", setShipCustomizationsController);
140
apiRouter.post("/setShipFavouriteLoadout.php", setShipFavouriteLoadoutController);
139
141
apiRouter.post("/setWeaponSkillTree.php", setWeaponSkillTreeController);
140
142
apiRouter.post("/shipDecorations.php", shipDecorationsController);
141
143
apiRouter.post("/startDojoRecipe.php", startDojoRecipeController);