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

feat: getRecentPlayers (#3460)

I can't really identify a purpose for this endpoint, but I suppose it's just supposed to fill in some information the client doesn't cache locally. Closes #3287 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3460 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

0e6b6809
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +21 -0
Added src/controllers/api/getRecentPlayersController.ts +19 -0
@@ -0,0 +1,19 @@
1 import type { RequestHandler } from "express";
2 import type { IFriendInfo } from "../../types/friendTypes.ts";
3 import { getJSONfromString } from "../../helpers/stringHelpers.ts";
4 import { addAccountDataToFriendInfo, addInventoryDataToFriendInfo } from "../../services/friendService.ts";
5
6 export const getRecentPlayersController: RequestHandler = async (req, res): Promise<void> => {
7 const payload = getJSONfromString<IRecentPlayersPayload>(String(req.body));
8 const promises: Promise<void>[] = [];
9 for (const info of payload.RecentPlayers) {
10 promises.push(addAccountDataToFriendInfo(info));
11 promises.push(addInventoryDataToFriendInfo(info));
12 }
13 await Promise.all(promises);
14 res.json(payload);
15 };
16
17 interface IRecentPlayersPayload {
18 RecentPlayers: IFriendInfo[]; // in request, this is all defaulted except for _id and DisplayName
19 }
Modified src/routes/api.ts +2 -0
@@ -75,6 +75,7 @@ import { getIgnoredUsersController } from "../controllers/api/getIgnoredUsersCon
75 75 import { getNewRewardSeedController } from "../controllers/api/getNewRewardSeedController.ts";
76 76 import { getPastWeeklyChallengesController } from "../controllers/api/getPastWeeklyChallengesController.ts";
77 77 import { getProfileViewingDataPostController } from "../controllers/dynamic/getProfileViewingDataController.ts";
78 import { getRecentPlayersController } from "../controllers/api/getRecentPlayersController.ts";
78 79 import { getShipController } from "../controllers/api/getShipController.ts";
79 80 import { getVendorInfoController } from "../controllers/api/getVendorInfoController.ts";
80 81 import { getVoidProjectionRewardsController } from "../controllers/api/getVoidProjectionRewardsController.ts";
@@ -309,6 +310,7 @@ apiRouter.post("/getAlliance.php", getAllianceController);
309 310 apiRouter.post("/getFriends.php", getFriendsController);
310 311 apiRouter.post("/getGuildDojo.php", getGuildDojoController);
311 312 apiRouter.post("/getProfileViewingData.php", getProfileViewingDataPostController);
313 apiRouter.post("/getRecentPlayers.php", getRecentPlayersController);
312 314 apiRouter.post("/getVoidProjectionRewards.php", getVoidProjectionRewardsController);
313 315 apiRouter.post("/gifting.php", giftingController);
314 316 apiRouter.post("/gildWeapon.php", gildWeaponController);