MCPcopy Create free account
hub / github.com/async-labs/async / DiscussionClass

Class DiscussionClass

api/server/models/Discussion.ts:98–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

96}
97
98class DiscussionClass extends mongoose.Model {
99 // added isDiscussionArchived
100 // false for Active list
101 // true for Archived list
102 public static async getActiveList(params) {
103 const { userId, teamId } = params;
104
105 await this.checkPermission({ userId, teamId });
106
107 const filter = {
108 teamId,
109 discussionMemberIds: userId,
110 isDiscussionArchived: false,
111 };
112
113 const discussions = await this.find(filter).sort({ _id: 1 }).setOptions({ lean: true });
114
115 for (const discussion of discussions) {
116 // Object.assign works
117 Object.assign(discussion, {
118 initialComments: await Comment.getList({
119 userId,
120 discussionId: discussion._id.toString(),
121 }),
122 });
123 }
124
125 return discussions;
126 }
127
128 public static async getArchivedList(params) {
129 const { userId, teamId } = params;
130
131 await this.checkPermission({ userId, teamId });
132
133 const filter = {
134 teamId,
135 discussionMemberIds: userId,
136 isDiscussionArchived: true,
137 };
138
139 const discussions = await this.find(filter).sort({ _id: 1 }).setOptions({ lean: true });
140
141 for (const discussion of discussions) {
142 // Object.assign works
143 Object.assign(discussion, {
144 initialComments: await Comment.getList({
145 userId,
146 discussionId: discussion._id.toString(),
147 }),
148 });
149 }
150
151 return discussions;
152 }
153
154 public static async createOrUpdate(data) {
155 const { discussionName, discussionMemberIds = [], userId, teamId, id, content, files } = data;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected