summary refs log tree commit diff
path: root/src/models/Message.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-07 20:26:19 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-07 20:26:19 +0200
commita6d82b466f61c1b60b1058d75b0647f2c0ac91a0 (patch)
tree3861fb579509fa3b271edf707ce2f5a0006b3c9c /src/models/Message.ts
parentgetPermission use cache (diff)
downloadserver-a6d82b466f61c1b60b1058d75b0647f2c0ac91a0.tar.xz
:zap: use mongoose autopopulate
Diffstat (limited to 'src/models/Message.ts')
-rw-r--r--src/models/Message.ts16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/models/Message.ts b/src/models/Message.ts

index ee038f97..15ff57d3 100644 --- a/src/models/Message.ts +++ b/src/models/Message.ts
@@ -1,7 +1,7 @@ import { Schema, Types, Document } from "mongoose"; import db from "../util/Database"; -import { PublicUser, UserModel } from "./User"; -import { MemberModel, PublicMember } from "./Member"; +import { PublicUser, PublicUserProjection, UserModel } from "./User"; +import { MemberModel, PublicMember, PublicMemberProjection } from "./Member"; import { Role, RoleModel } from "./Role"; import { Channel } from "./Channel"; @@ -229,6 +229,14 @@ export const MessageSchema = new Schema({ channel_id: String, guild_id: String, }, + // virtual: + // author: { + // ref: UserModel, + // localField: "author_id", + // foreignField: "id", + // justOne: true, + // autopopulate: { select: { id: true, user_data: false } }, + // }, }); MessageSchema.virtual("author", { @@ -236,6 +244,7 @@ MessageSchema.virtual("author", { localField: "author_id", foreignField: "id", justOne: true, + autopopulate: { select: PublicUserProjection }, }); MessageSchema.virtual("member", { @@ -250,6 +259,7 @@ MessageSchema.virtual("mentions", { localField: "mention_user_ids", foreignField: "id", justOne: false, + autopopulate: { select: PublicUserProjection }, }); MessageSchema.virtual("mention_roles", { @@ -257,6 +267,7 @@ MessageSchema.virtual("mention_roles", { localField: "mention_role_ids", foreignField: "id", justOne: false, + autopopulate: true, }); MessageSchema.virtual("mention_channels", { @@ -264,6 +275,7 @@ MessageSchema.virtual("mention_channels", { localField: "mention_channel_ids", foreignField: "id", justOne: false, + autopopulate: { select: { id: true, guild_id: true, type: true, name: true } }, }); MessageSchema.set("removeResponse", ["mention_channel_ids", "mention_role_ids", "mention_user_ids", "author_id"]);