🚧 [Member] list

This commit is contained in:
Flam3rboy 2021-02-22 22:11:32 +01:00
parent e894389732
commit 5f142a7402

View File

@ -2,11 +2,12 @@ import { Request, Response, Router } from "express";
import { GuildModel, MemberModel } from "fosscord-server-util"; import { GuildModel, MemberModel } from "fosscord-server-util";
import { HTTPError } from "lambert-server"; import { HTTPError } from "lambert-server";
import { instanceOf, Length } from "../../../../../../util/instanceOf"; import { instanceOf, Length } from "../../../../../../util/instanceOf";
import { PublicMemberProjection } from "../../../../../../util/Member";
const router = Router(); const router = Router();
// TODO: privileged intents // TODO: not allowed for user -> only allowed for bots with privileged intents
// TODO: needs pagination/only send over websocket // TODO: send over websocket
router.get("/", async (req: Request, res: Response) => { router.get("/", async (req: Request, res: Response) => {
const guild_id = BigInt(req.params.id); const guild_id = BigInt(req.params.id);
const guild = await GuildModel.findOne({ id: guild_id }).exec(); const guild = await GuildModel.findOne({ id: guild_id }).exec();
@ -27,10 +28,23 @@ router.get("/", async (req: Request, res: Response) => {
const { limit, after } = (<unknown>req.query) as { limit: number; after: bigint }; const { limit, after } = (<unknown>req.query) as { limit: number; after: bigint };
const query = after ? { id: { $gt: after } } : {}; const query = after ? { id: { $gt: after } } : {};
var members = await MemberModel.find({ guild_id, ...query }) var members = await MemberModel.find({ guild_id, ...query }, PublicMemberProjection)
.limit(limit) .limit(limit)
.populate("user")
.exec(); .exec();
return res.json(members); return res.json(members);
}); });
router.get("/:member", async (req: Request, res: Response) => {
const guild_id = BigInt(req.params.id);
const user_id = BigInt(req.params.member);
const member = await MemberModel.findOne({ id: user_id, guild_id }).populate("user").exec();
if (!member) throw new HTTPError("Member not found", 404);
console.log(member.user);
return res.json(member);
});
export default router; export default router;