@builder6/rooms 0.9.3 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +1 -0
  2. package/dist/rooms/app.controller.d.ts +10 -0
  3. package/dist/rooms/app.controller.js +73 -0
  4. package/dist/rooms/app.controller.js.map +1 -0
  5. package/dist/rooms/dtos/notifications.dto.d.ts +10 -0
  6. package/dist/rooms/dtos/notifications.dto.js +7 -0
  7. package/dist/rooms/dtos/notifications.dto.js.map +1 -0
  8. package/dist/rooms/dtos/room_members.dto.d.ts +7 -0
  9. package/dist/rooms/dtos/room_members.dto.js +52 -0
  10. package/dist/rooms/dtos/room_members.dto.js.map +1 -0
  11. package/dist/rooms/dtos/rooms.dto.d.ts +12 -0
  12. package/dist/rooms/dtos/rooms.dto.js +59 -0
  13. package/dist/rooms/dtos/rooms.dto.js.map +1 -0
  14. package/dist/rooms/notifications.service.d.ts +18 -0
  15. package/dist/rooms/notifications.service.js +66 -0
  16. package/dist/rooms/notifications.service.js.map +1 -0
  17. package/dist/rooms/rooms.controller.d.ts +31 -6
  18. package/dist/rooms/rooms.controller.js +119 -24
  19. package/dist/rooms/rooms.controller.js.map +1 -1
  20. package/dist/rooms/rooms.gateway.d.ts +3 -1
  21. package/dist/rooms/rooms.gateway.js +12 -5
  22. package/dist/rooms/rooms.gateway.js.map +1 -1
  23. package/dist/rooms/rooms.guard.d.ts +1 -3
  24. package/dist/rooms/rooms.guard.js +2 -5
  25. package/dist/rooms/rooms.guard.js.map +1 -1
  26. package/dist/rooms/rooms.module.js +7 -2
  27. package/dist/rooms/rooms.module.js.map +1 -1
  28. package/dist/rooms/rooms.moleculer.d.ts +11 -0
  29. package/dist/rooms/rooms.moleculer.js +91 -0
  30. package/dist/rooms/rooms.moleculer.js.map +1 -0
  31. package/dist/rooms/rooms.service.d.ts +35 -4
  32. package/dist/rooms/rooms.service.js +146 -8
  33. package/dist/rooms/rooms.service.js.map +1 -1
  34. package/package.json +12 -3
  35. package/src/rooms/app.controller.ts +63 -0
  36. package/src/rooms/dtos/notifications.dto.ts +10 -0
  37. package/src/rooms/dtos/room_members.dto.ts +29 -0
  38. package/src/rooms/dtos/rooms.dto.ts +51 -0
  39. package/src/rooms/notifications.service.ts +82 -0
  40. package/src/rooms/rooms.controller.ts +132 -16
  41. package/src/rooms/rooms.gateway.ts +17 -4
  42. package/src/rooms/rooms.guard.ts +1 -1
  43. package/src/rooms/rooms.module.ts +7 -2
  44. package/src/rooms/rooms.moleculer.ts +78 -0
  45. package/src/rooms/rooms.service.ts +210 -6
  46. package/.eslintrc.js +0 -25
@@ -1,5 +1,8 @@
1
1
  import { MongodbService } from '@builder6/core';
2
2
  import { JwtService } from '@nestjs/jwt';
3
+ import { RoomDTO } from './dtos/rooms.dto';
4
+ import { RoomMemberDTO } from './dtos/room_members.dto';
5
+ import { NotificationsService } from './notifications.service';
3
6
  export interface CreateThreadParams {
4
7
  id?: string;
5
8
  comment?: CreateCommentParams;
@@ -23,13 +26,18 @@ export interface Attachment {
23
26
  size: number;
24
27
  type: string;
25
28
  }
29
+ export declare enum CommentType {
30
+ Paragraph = "paragraph"
31
+ }
32
+ export declare enum CommentBodyInlineType {
33
+ Mention = "mention",
34
+ Link = "link"
35
+ }
26
36
  export declare class RoomsService {
27
37
  private mongodbService;
28
38
  private jwtService;
29
- constructor(mongodbService: MongodbService, jwtService: JwtService);
30
- getRoom(roomId: string): Promise<{
31
- _id: string;
32
- }>;
39
+ private notificationsService;
40
+ constructor(mongodbService: MongodbService, jwtService: JwtService, notificationsService: NotificationsService);
33
41
  getToken({ spaceId, userId, perms, }: {
34
42
  spaceId: string;
35
43
  userId: string;
@@ -37,11 +45,28 @@ export declare class RoomsService {
37
45
  }): Promise<{
38
46
  token: string;
39
47
  }>;
48
+ getRoomToken({ roomId, spaceId, userId, readonly, }: {
49
+ roomId: string;
50
+ spaceId: string;
51
+ userId: string;
52
+ readonly: boolean;
53
+ }): Promise<{
54
+ token: string;
55
+ }>;
40
56
  getAttachmentById(attachmentId: string): Promise<Attachment>;
41
57
  getUsers(userIds: string | string[]): Promise<any[]>;
42
58
  searchUsers(spaceId: string, keyword: string, roomId: string): Promise<string[]>;
43
59
  getThread(roomId: string, threadId: string): Promise<any>;
44
60
  getThreads(roomId: string, since?: Date): Promise<any>;
61
+ getThreadsByIds(notifications: {
62
+ id: string;
63
+ userId: string;
64
+ kind: string;
65
+ notifiedAt?: Date;
66
+ readAt?: Date;
67
+ roomId: string;
68
+ threadId: string;
69
+ }[]): Promise<any[]>;
45
70
  getComments(roomId: string, threadId: string): Promise<any>;
46
71
  createThread({ id, comment, metadata, resolved, roomId, userId, }: CreateThreadParams): Promise<any>;
47
72
  updateThread(threadId: any, thread?: CreateThreadParams): Promise<any>;
@@ -60,4 +85,10 @@ export declare class RoomsService {
60
85
  userId: string;
61
86
  emoji: string;
62
87
  }): Promise<any>;
88
+ createRoom({ _id, name, description, membershipType, members, defaultNotifications, defaultScopes, }: RoomDTO): Promise<RoomDTO>;
89
+ createRoomMember(room: RoomDTO, member: RoomMemberDTO): Promise<any>;
90
+ getRoom(roomId: string): Promise<any>;
91
+ getRoomMembers(roomId: string): Promise<any>;
92
+ getRoomMember(roomId: string, userId: string): Promise<any>;
93
+ getMyRooms(userId: string): Promise<any[]>;
63
94
  }
@@ -9,17 +9,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RoomsService = void 0;
12
+ exports.RoomsService = exports.CommentBodyInlineType = exports.CommentType = void 0;
13
13
  const core_1 = require("@builder6/core");
14
14
  const jwt_1 = require("@nestjs/jwt");
15
15
  const common_1 = require("@nestjs/common");
16
+ const rooms_dto_1 = require("./dtos/rooms.dto");
17
+ const lodash_1 = require("lodash");
18
+ const notifications_service_1 = require("./notifications.service");
19
+ const uuid_1 = require("uuid");
20
+ var CommentType;
21
+ (function (CommentType) {
22
+ CommentType["Paragraph"] = "paragraph";
23
+ })(CommentType = exports.CommentType || (exports.CommentType = {}));
24
+ var CommentBodyInlineType;
25
+ (function (CommentBodyInlineType) {
26
+ CommentBodyInlineType["Mention"] = "mention";
27
+ CommentBodyInlineType["Link"] = "link";
28
+ })(CommentBodyInlineType = exports.CommentBodyInlineType || (exports.CommentBodyInlineType = {}));
16
29
  let RoomsService = class RoomsService {
17
- constructor(mongodbService, jwtService) {
30
+ constructor(mongodbService, jwtService, notificationsService) {
18
31
  this.mongodbService = mongodbService;
19
32
  this.jwtService = jwtService;
20
- }
21
- async getRoom(roomId) {
22
- return { _id: roomId };
33
+ this.notificationsService = notificationsService;
23
34
  }
24
35
  async getToken({ spaceId, userId, perms, }) {
25
36
  const payload = {
@@ -28,13 +39,36 @@ let RoomsService = class RoomsService {
28
39
  sid: spaceId,
29
40
  uid: userId,
30
41
  mcpr: 10,
31
- perms: {},
42
+ perms: perms,
32
43
  jti: 'S4EMiESTDe6k',
33
44
  };
34
- payload.perms = perms || {};
35
45
  const token = await this.jwtService.signAsync(payload);
36
46
  return { token };
37
47
  }
48
+ async getRoomToken({ roomId, spaceId, userId, readonly = false, }) {
49
+ let room = await this.getRoom(roomId);
50
+ if (!room) {
51
+ room = await this.createRoom({
52
+ _id: roomId,
53
+ name: 'Room ' + roomId,
54
+ });
55
+ }
56
+ let member = await this.getRoomMember(roomId, userId);
57
+ if (!member) {
58
+ member = await this.createRoomMember(room, {
59
+ userId,
60
+ });
61
+ }
62
+ const scopes = readonly ? rooms_dto_1.READ_ACCESS : member.scopes;
63
+ const perms = {
64
+ [roomId]: scopes,
65
+ };
66
+ return await this.getToken({
67
+ spaceId,
68
+ userId,
69
+ perms,
70
+ });
71
+ }
38
72
  async getAttachmentById(attachmentId) {
39
73
  const attachment = await this.mongodbService.findOne('cfs.files.filerecord', {
40
74
  _id: attachmentId,
@@ -97,6 +131,17 @@ let RoomsService = class RoomsService {
97
131
  }
98
132
  return threads;
99
133
  }
134
+ async getThreadsByIds(notifications) {
135
+ const threadPromises = [];
136
+ for (let i = 0; i < notifications.length; i++) {
137
+ const notification = notifications[i];
138
+ threadPromises.push(this.getThread(notification.roomId, notification.threadId));
139
+ }
140
+ if (threadPromises.length > 0) {
141
+ return Promise.all(threadPromises);
142
+ }
143
+ return [];
144
+ }
100
145
  async getComments(roomId, threadId) {
101
146
  const comments = await this.mongodbService.find('b6_comments', {
102
147
  roomId: roomId,
@@ -162,6 +207,31 @@ let RoomsService = class RoomsService {
162
207
  const attachment = await this.getAttachmentById(attachmentId);
163
208
  result.attachments.push(attachment);
164
209
  }
210
+ const { content } = body;
211
+ let notificationsPromises;
212
+ const mentionUsers = [];
213
+ for (const message of content) {
214
+ if (message.type === CommentType.Paragraph) {
215
+ message.children
216
+ .filter((child) => child?.type === CommentBodyInlineType.Mention)
217
+ .forEach((child) => mentionUsers.push(child.id));
218
+ }
219
+ }
220
+ if (mentionUsers && mentionUsers.length > 0) {
221
+ notificationsPromises = (0, lodash_1.uniq)(mentionUsers).map((userId) => {
222
+ return this.notificationsService.createThreadNotification({
223
+ _id: (0, uuid_1.v4)(),
224
+ id: (0, uuid_1.v4)(),
225
+ userId,
226
+ kind: 'thread',
227
+ notifiedAt: new Date(),
228
+ readAt: null,
229
+ roomId,
230
+ threadId,
231
+ });
232
+ });
233
+ await Promise.all(notificationsPromises);
234
+ }
165
235
  delete result['_id'];
166
236
  delete result['attachmentIds'];
167
237
  return result;
@@ -235,11 +305,79 @@ let RoomsService = class RoomsService {
235
305
  await this.mongodbService.findOneAndUpdate('b6_comments', { _id: commentId }, comment);
236
306
  return null;
237
307
  }
308
+ async createRoom({ _id, name, description = '', membershipType = 'standard', members = [], defaultNotifications = ['replies', 'mentions'], defaultScopes = ['room:write'], }) {
309
+ const newRoom = {
310
+ createdAt: new Date().toISOString(),
311
+ updatedAt: new Date().toISOString(),
312
+ _id,
313
+ name,
314
+ description,
315
+ membershipType,
316
+ defaultNotifications,
317
+ defaultScopes,
318
+ };
319
+ const room = await this.mongodbService.insertOne('b6_rooms', newRoom);
320
+ room.members = [];
321
+ for (const member of members) {
322
+ const newMember = await this.createRoomMember(room, member);
323
+ room.members.push(newMember);
324
+ }
325
+ return room;
326
+ }
327
+ async createRoomMember(room, member) {
328
+ const { _id, userId, roles = [], notifications = room.defaultNotifications, scopes = room.defaultScopes, } = member;
329
+ const newMember = {
330
+ _id,
331
+ userId,
332
+ roles,
333
+ roomId: room._id,
334
+ notifications,
335
+ scopes,
336
+ createdAt: new Date().toISOString(),
337
+ };
338
+ const result = await this.mongodbService.insertOne('b6_room_members', newMember);
339
+ return result;
340
+ }
341
+ async getRoom(roomId) {
342
+ const room = await this.mongodbService.findOne('b6_rooms', {
343
+ _id: roomId,
344
+ });
345
+ if (!room) {
346
+ return null;
347
+ }
348
+ room.members = await this.getRoomMembers(roomId);
349
+ return room;
350
+ }
351
+ async getRoomMembers(roomId) {
352
+ const members = await this.mongodbService.find('b6_room_members', {
353
+ roomId,
354
+ });
355
+ return members;
356
+ }
357
+ async getRoomMember(roomId, userId) {
358
+ const member = await this.mongodbService.findOne('b6_room_members', {
359
+ roomId,
360
+ userId,
361
+ });
362
+ return member;
363
+ }
364
+ async getMyRooms(userId) {
365
+ const roomMembers = await this.mongodbService.find('b6_room_members', {
366
+ userId,
367
+ });
368
+ const rooms = [];
369
+ for (const roomMember of roomMembers) {
370
+ const room = await this.getRoom(roomMember.roomId);
371
+ rooms.push(room);
372
+ }
373
+ return rooms;
374
+ }
238
375
  };
239
376
  RoomsService = __decorate([
240
377
  (0, common_1.Injectable)(),
241
378
  __metadata("design:paramtypes", [core_1.MongodbService,
242
- jwt_1.JwtService])
379
+ jwt_1.JwtService,
380
+ notifications_service_1.NotificationsService])
243
381
  ], RoomsService);
244
382
  exports.RoomsService = RoomsService;
245
383
  //# sourceMappingURL=rooms.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.service.js","sourceRoot":"","sources":["../../src/rooms/rooms.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rooms.service.js","sourceRoot":"","sources":["../../src/rooms/rooms.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAgD;AAChD,qCAAyC;AACzC,2CAA4C;AAC5C,gDAAwD;AAExD,mCAA8B;AAC9B,mEAA+D;AAC/D,+BAAoC;AA6BpC,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,sCAAuB,CAAA;AACzB,CAAC,EAFW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAEtB;AAED,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,sCAAa,CAAA;AACf,CAAC,EAHW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAGhC;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YACU,cAA8B,EAC9B,UAAsB,EACtB,oBAA0C;QAF1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAY;QACtB,yBAAoB,GAApB,oBAAoB,CAAsB;IACjD,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EACb,OAAO,EACP,MAAM,EACN,KAAK,GAKN;QACC,MAAM,OAAO,GAAG;YACd,CAAC,EAAE,KAAK;YACR,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,cAAc;SACpB,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,GAAG,KAAK,GAMjB;QACC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBAC3B,GAAG,EAAE,MAAM;gBACX,IAAI,EAAE,OAAO,GAAG,MAAM;aACvB,CAAC,CAAC;SACJ;QAED,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;gBACzC,MAAM;aACP,CAAC,CAAC;SACJ;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAEtD,MAAM,KAAK,GAAG;YACZ,CAAC,MAAM,CAAC,EAAE,MAAM;SACjB,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC;YACzB,OAAO;YACP,MAAM;YACN,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAI1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAClD,sBAAsB,EACtB;YACE,GAAG,EAAE,YAAY;SAClB,CACF,CAAC;QACF,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;YAClC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;YAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;YAC9B,IAAI,EAAE,YAAY;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;SACrB;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtD,GAAG,EAAE,MAAM;aACZ,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAEnC,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,KAAK,CAAC,WAAW,CACf,OAAe,EACf,OAAe,EACf,MAAc;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/D,KAAK,EAAE,OAAO;YACd,GAAG,EAAE;gBACH,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAChD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAC7C,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;aAC7C;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAc,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,QAAgB;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAY;QAC3C,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,MAAM,EAAS,CAAC;QAC/C,IAAI,KAAK,EAAE;YACT,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SACzC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,aAQG;QAEH,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAC3D,CAAC;SACH;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACpC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,QAAgB;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE;gBAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBAC9D,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACtC;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,EAAE,EACF,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,MAAM,GACa;QACnB,MAAM,SAAS,GAAG;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,EAAE,EAAE;YACP,EAAE;YACF,QAAQ;YACR,QAAQ;YACR,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,MAAM;SACP,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YAC1C,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM;YACN,QAAQ,EAAE,EAAE;YACZ,MAAM;SACP,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC;QAE/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAA2B;QACtD,MAAM,SAAS,GAAG;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,MAAM;SACV,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACvD,YAAY,EACZ,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB,SAAS,CACV,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAClB,EAAE,EACF,aAAa,EACb,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,GACc;QACpB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,EAAE,EAAE;YACP,EAAE;YACF,SAAS,EAAE,EAAE;YACb,MAAM;YACN,QAAQ;YACR,MAAM;YACN,IAAI,EAAE,SAAS;YACf,aAAa;YACb,IAAI;SACL,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAChD,aAAa,EACb,UAAU,CACX,CAAC;QACF,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACrC;QAGD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAmB,CAAC;QACxC,IAAI,qBAAqC,CAAC;QAC1C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE;YAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,EAAE;gBAC1C,OAAO,CAAC,QAAQ;qBACb,MAAM,CACL,CAAC,KAAyB,EAAE,EAAE,CAC5B,KAAK,EAAE,IAAI,KAAK,qBAAqB,CAAC,OAAO,CAChD;qBACA,OAAO,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aACxE;SACF;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,qBAAqB,GAAG,IAAA,aAAI,EAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxD,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC;oBACxD,GAAG,EAAE,IAAA,SAAM,GAAE;oBACb,EAAE,EAAE,IAAA,SAAM,GAAE;oBACZ,MAAM;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,IAAI,IAAI,EAAE;oBACtB,MAAM,EAAE,IAAI;oBACZ,MAAM;oBACN,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;SAC1C;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAS,EACT,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAuB;QAEpD,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,SAAS;YACf,aAAa;YACb,IAAI;YACJ,MAAM;SACP,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACxD,aAAa,EACb,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,UAAU,CACX,CAAQ,CAAC;QACV,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAS;QAG3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,EAAE;YAChE,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAuBE,KAAK,CAAC,cAAc,CACrB,SAAiB,EACjB,EAAE,MAAM,EAAE,KAAK,EAAqC;QAEpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE;YAC/D,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAGD,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CACvC,CAAC;QACF,IAAI,QAAQ,EAAE;YAEZ,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,UAAU,EAAE;gBACf,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;aACrC;SACF;aAAM;YAEL,QAAQ,GAAG;gBACT,KAAK;gBACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;aACxB,CAAC;YACF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClC;QAGD,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACxC,aAAa,EACb,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,OAAO,CACR,CAAC;QAEF,OAAO;YACL,KAAK;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,EAAE,MAAM,EAAE,KAAK,EAAqC;QAEpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE;YAC/D,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACrC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CACvC,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAErE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAC1C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CACxC,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACxC,aAAa,EACb,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,OAAO,CACR,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EACf,GAAG,EACH,IAAI,EACJ,WAAW,GAAG,EAAE,EAChB,cAAc,GAAG,UAAU,EAC3B,OAAO,GAAG,EAAE,EACZ,oBAAoB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,EAC9C,aAAa,GAAG,CAAC,YAAY,CAAC,GACtB;QACR,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG;YACH,IAAI;YACJ,WAAW;YACX,cAAc;YACd,oBAAoB;YACpB,aAAa;SACd,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAGtE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAa,EAAE,MAAqB;QACzD,MAAM,EACJ,GAAG,EACH,MAAM,EACN,KAAK,GAAG,EAAE,EACV,aAAa,GAAG,IAAI,CAAC,oBAAoB,EACzC,MAAM,GAAG,IAAI,CAAC,aAAa,GAC5B,GAAG,MAAM,CAAC;QACX,MAAM,SAAS,GAAG;YAChB,GAAG;YACH,MAAM;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,aAAa;YACb,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAChD,iBAAiB,EACjB,SAAS,CACV,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE;YACzD,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAChE,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,MAAc;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAClE,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACpE,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAniBY,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGe,qBAAc;QAClB,gBAAU;QACA,4CAAoB;GAJzC,YAAY,CAmiBxB;AAniBY,oCAAY"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder6/rooms",
3
- "version": "0.9.3",
3
+ "version": "0.10.2",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -10,7 +10,13 @@
10
10
  "build:watch": "rimraf dist && tsc --watch"
11
11
  },
12
12
  "dependencies": {
13
- "@builder6/core": "^0.9.3"
13
+ "@builder6/core": "^0.10.2",
14
+ "@builder6/moleculer": "^0.10.2",
15
+ "@builder6/pages": "^0.10.2",
16
+ "lodash": "^4.17.21"
17
+ },
18
+ "peerDependencies": {
19
+ "moleculer": "^0.14.35"
14
20
  },
15
21
  "jest": {
16
22
  "moduleFileExtensions": [
@@ -32,5 +38,8 @@
32
38
  "publishConfig": {
33
39
  "access": "public"
34
40
  },
35
- "gitHead": "22c1d555d9f1bb0d3ab8f7b04d197b774c5316d1"
41
+ "devDependencies": {
42
+ "@types/lodash": "^4.17.13"
43
+ },
44
+ "gitHead": "ea097019fd7d6e9efb44edbefcc5b3bed8d7eb82"
36
45
  }
@@ -0,0 +1,63 @@
1
+ import {
2
+ Controller,
3
+ Get,
4
+ Param,
5
+ Res,
6
+ Query,
7
+ UseGuards,
8
+ Req,
9
+ } from '@nestjs/common';
10
+ import { Response } from 'express';
11
+ import { AuthGuard } from '@builder6/core';
12
+ import { PagesService } from '@builder6/pages';
13
+
14
+ // 兼容 Steedos OpenAPI v1 格式的 api
15
+ @Controller('b6/rooms/')
16
+ @UseGuards(AuthGuard)
17
+ export class RoomsAppController {
18
+ constructor(private readonly pagesService: PagesService) {}
19
+
20
+ @Get(':roomId')
21
+ async getRooms(
22
+ @Param('roomId') roomId: string = 'test',
23
+ @Query() query: Record<string, any>,
24
+ @Req() req: Request,
25
+ @Res() res: Response,
26
+ ) {
27
+ const user = req['user'];
28
+ try {
29
+ const schema = {
30
+ type: 'rooms-provider',
31
+ baseUrl: '',
32
+ body: [
33
+ {
34
+ type: 'rooms-inbox-popover',
35
+ className: 'flex flex-col m-3 gap-3',
36
+ },
37
+ {
38
+ type: 'rooms-comments',
39
+ className: 'flex flex-col m-3 gap-3',
40
+ roomId: `${roomId}`,
41
+ },
42
+ ],
43
+ };
44
+ const data = {};
45
+ const env = {
46
+ assetUrls: [
47
+ 'https://unpkg.com/@steedos-widgets/liveblocks@6.3.12-beta.1/dist/assets.json',
48
+ ],
49
+ };
50
+ const rendered = await this.pagesService.renderAmis(
51
+ schema,
52
+ data,
53
+ env,
54
+ user,
55
+ );
56
+
57
+ res.status(200).send(rendered); // 返回渲染后的字符串
58
+ } catch (error) {
59
+ console.log(error);
60
+ return { error: 'Rooms rendering failed', details: error.message };
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,10 @@
1
+ export class NotificationDTO {
2
+ _id: string;
3
+ id: string;
4
+ userId: string;
5
+ kind: string;
6
+ notifiedAt?: Date;
7
+ readAt?: Date;
8
+ roomId: string;
9
+ threadId: string;
10
+ }
@@ -0,0 +1,29 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { FULL_ACCESS } from './rooms.dto';
3
+
4
+ export class RoomMemberDTO {
5
+ @ApiProperty()
6
+ _id?: string;
7
+
8
+ @ApiProperty()
9
+ userId: string;
10
+
11
+ // 可选范围为:['owner']
12
+ @ApiProperty({
13
+ enum: ['owner'],
14
+ default: [],
15
+ })
16
+ roles?: string[] = [];
17
+
18
+ @ApiProperty({
19
+ enum: ['all', 'replies', 'mentions'],
20
+ default: ['replies', 'mentions'],
21
+ })
22
+ notifications?: string[] = ['replies', 'mentions'];
23
+
24
+ @ApiProperty({
25
+ enum: ['room:read', 'room:write'],
26
+ default: FULL_ACCESS,
27
+ })
28
+ scopes?: string[] = FULL_ACCESS;
29
+ }
@@ -0,0 +1,51 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { RoomMemberDTO } from './room_members.dto';
3
+
4
+ /**
5
+ * Assign this to a room (or wildcard pattern) if you want to grant the user
6
+ * read permissions to the storage and comments data for this room. (Note that
7
+ * the user will still have permissions to update their own presence.)
8
+ */
9
+ export const READ_ACCESS = [
10
+ 'room:read',
11
+ 'room:presence:write',
12
+ 'comments:read',
13
+ ];
14
+
15
+ /**
16
+ * Assign this to a room (or wildcard pattern) if you want to grant the user
17
+ * permissions to read and write to the room's storage and comments.
18
+ */
19
+ export const FULL_ACCESS = ['room:write', 'comments:write'];
20
+
21
+ export class RoomDTO {
22
+ @ApiProperty()
23
+ _id?: string;
24
+
25
+ @ApiProperty()
26
+ name: string;
27
+
28
+ @ApiProperty()
29
+ description?: string;
30
+
31
+ // https://learn.microsoft.com/en-us/microsoftteams/teams-channels-overview
32
+ @ApiProperty({
33
+ enum: ['standard', 'private', 'shared'],
34
+ default: 'standard',
35
+ })
36
+ membershipType?: string;
37
+
38
+ members?: RoomMemberDTO[];
39
+
40
+ @ApiProperty({
41
+ enum: ['room:read', 'room:write'],
42
+ default: FULL_ACCESS,
43
+ })
44
+ defaultScopes?: string[] = FULL_ACCESS;
45
+
46
+ @ApiProperty({
47
+ enum: ['all', 'replies', 'mentions'],
48
+ default: ['replies', 'mentions'],
49
+ })
50
+ defaultNotifications?: string[];
51
+ }
@@ -0,0 +1,82 @@
1
+ import { MongodbService } from '@builder6/core';
2
+ import { InjectBroker } from '@builder6/moleculer';
3
+ import { Injectable } from '@nestjs/common';
4
+ import { ServiceBroker } from 'moleculer';
5
+ import { NotificationDTO } from './dtos/notifications.dto';
6
+
7
+ @Injectable()
8
+ export class NotificationsService {
9
+ constructor(
10
+ private mongodbService: MongodbService,
11
+ @InjectBroker() private readonly broker: ServiceBroker,
12
+ ) {}
13
+
14
+ async createThreadNotification({
15
+ _id,
16
+ id,
17
+ userId,
18
+ kind = 'thread',
19
+ notifiedAt,
20
+ readAt,
21
+ roomId,
22
+ threadId,
23
+ }: NotificationDTO) {
24
+ return this.mongodbService.insertOne('b6_notifications', {
25
+ _id,
26
+ id,
27
+ userId,
28
+ kind,
29
+ notifiedAt,
30
+ readAt,
31
+ roomId,
32
+ threadId,
33
+ });
34
+ }
35
+
36
+ async findNotifications({
37
+ userId,
38
+ unread,
39
+ limit,
40
+ sinceDate,
41
+ roomId,
42
+ threadId,
43
+ }: {
44
+ userId: string;
45
+ unread?: boolean;
46
+ limit?: number;
47
+ sinceDate?: Date;
48
+ roomId?: string;
49
+ threadId?: string;
50
+ }) {
51
+ const queryOptions = { userId } as {
52
+ userId: string;
53
+ readAt: null | undefined;
54
+ notifiedAt: { $gt: Date } | undefined;
55
+ roomId?: string;
56
+ threadId?: string;
57
+ id: { $in: string[] } | undefined;
58
+ };
59
+ if (unread) queryOptions.readAt = null;
60
+ if (sinceDate) {
61
+ queryOptions.notifiedAt = { $gt: sinceDate };
62
+ }
63
+ if (roomId) queryOptions.roomId = roomId;
64
+ if (threadId) queryOptions.threadId = threadId;
65
+ const collection = (await this.mongodbService.getCollection(
66
+ 'b6_notifications',
67
+ )) as any;
68
+ const query = collection.find(queryOptions).sort({ notifiedAt: 1 });
69
+ if (limit) query.limit(limit);
70
+ return query.toArray();
71
+ }
72
+
73
+ async markAsRead(roomId: string, userId: string, notificationIds: string[]) {
74
+ const collection = (await this.mongodbService.getCollection(
75
+ 'b6_notifications',
76
+ )) as any;
77
+ return collection.updateMany(
78
+ { _id: { $in: notificationIds }, roomId, userId },
79
+ { $set: { readAt: new Date() } },
80
+ );
81
+ }
82
+ }