返回提交历史
Added
src/controllers/api/valenceSwapController.ts
+37
-0
Modified
src/routes/api.ts
+2
-0
XFEstudio/SpaceNinjaServer
feat: valence swap (#1244)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1244
31ad97e2
代码差异
2 个文件
+39
-0
@@ -0,0 +1,37 @@
1
import { getInventory } from "@/src/services/inventoryService";
2
import { getAccountIdForRequest } from "@/src/services/loginService";
3
import { IOid } from "@/src/types/commonTypes";
4
import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
5
import { RequestHandler } from "express";
6
7
export const valenceSwapController: RequestHandler = async (req, res) => {
8
const accountId = await getAccountIdForRequest(req);
9
const body = JSON.parse(String(req.body)) as IValenceSwapRequest;
10
const inventory = await getInventory(accountId, body.WeaponCategory);
11
const weapon = inventory[body.WeaponCategory].id(body.WeaponId.$oid)!;
12
13
const upgradeFingerprint = JSON.parse(weapon.UpgradeFingerprint!) as IInnateDamageFingerprint;
14
upgradeFingerprint.buffs[0].Tag = body.NewValenceUpgradeTag;
15
weapon.UpgradeFingerprint = JSON.stringify(upgradeFingerprint);
16
17
await inventory.save();
18
res.json({
19
InventoryChanges: {
20
[body.WeaponCategory]: [weapon.toJSON()]
21
}
22
});
23
};
24
25
interface IValenceSwapRequest {
26
WeaponId: IOid;
27
WeaponCategory: TEquipmentKey;
28
NewValenceUpgradeTag: string;
29
}
30
31
interface IInnateDamageFingerprint {
32
compat: string;
33
buffs: {
34
Tag: string;
35
Value: number;
36
}[];
37
}
@@ -113,6 +113,7 @@ import { updateSessionGetController, updateSessionPostController } from "@/src/c
113
113
import { updateSongChallengeController } from "@/src/controllers/api/updateSongChallengeController";
114
114
import { updateThemeController } from "@/src/controllers/api/updateThemeController";
115
115
import { upgradesController } from "@/src/controllers/api/upgradesController";
116
import { valenceSwapController } from "@/src/controllers/api/valenceSwapController";
116
117
117
118
const apiRouter = express.Router();
118
119
@@ -241,5 +242,6 @@ apiRouter.post("/updateSession.php", updateSessionPostController);
241
242
apiRouter.post("/updateSongChallenge.php", updateSongChallengeController);
242
243
apiRouter.post("/updateTheme.php", updateThemeController);
243
244
apiRouter.post("/upgrades.php", upgradesController);
245
apiRouter.post("/valenceSwap.php", valenceSwapController);
244
246
245
247
export { apiRouter };