返回提交历史
Modified
src/controllers/api/getRecentPlayersController.ts
+10
-0
XFEstudio/XFESpaceNinjaServer
feat: handle empty id provided in getRecentPlayers (#3552)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3552 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
2c3429e6
代码差异
1 个文件
+10
-0
@@ -3,12 +3,22 @@ import type { IFriendInfo } from "../../types/friendTypes.ts";
3
3
import { getJSONfromString } from "../../helpers/stringHelpers.ts";
4
4
import { addAccountDataToFriendInfo, addInventoryDataToFriendInfo } from "../../services/friendService.ts";
5
5
import { getAccountForRequest } from "../../services/loginService.ts";
6
import { fromOid, toOid2 } from "../../helpers/inventoryHelpers.ts";
7
import { Account } from "../../models/loginModel.ts";
6
8
7
9
export const getRecentPlayersController: RequestHandler = async (req, res): Promise<void> => {
8
10
const account = await getAccountForRequest(req);
9
11
const payload = getJSONfromString<IRecentPlayersPayload>(String(req.body));
10
12
const promises: Promise<void>[] = [];
11
13
for (const info of payload.RecentPlayers) {
14
if (!fromOid(info._id)) {
15
// U18 may provide an empty $id but with a DisplayName for us to look us.
16
const otherAccount = await Account.findOne({ DisplayName: info.DisplayName }, "_id");
17
if (!otherAccount) {
18
continue;
19
}
20
info._id = toOid2(otherAccount._id, account.BuildLabel);
21
}
12
22
promises.push(addAccountDataToFriendInfo(info, account.BuildLabel));
13
23
promises.push(addInventoryDataToFriendInfo(info));
14
24
}