@builder6/rooms 0.9.2 → 0.10.0

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 (60) hide show
  1. package/README.md +14 -1
  2. package/dist/rooms/app.controller.d.ts +10 -0
  3. package/dist/rooms/app.controller.js +72 -0
  4. package/dist/rooms/app.controller.js.map +1 -0
  5. package/dist/rooms/dtos/notifications.dto.d.ts +9 -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 +53 -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/lib/Json.js +4 -3
  15. package/dist/rooms/lib/Json.js.map +1 -1
  16. package/dist/rooms/lib/utils.js +17 -16
  17. package/dist/rooms/lib/utils.js.map +1 -1
  18. package/dist/rooms/notifications.service.d.ts +19 -0
  19. package/dist/rooms/notifications.service.js +68 -0
  20. package/dist/rooms/notifications.service.js.map +1 -0
  21. package/dist/rooms/protocol/AuthToken.js +6 -6
  22. package/dist/rooms/protocol/AuthToken.js.map +1 -1
  23. package/dist/rooms/protocol/ClientMsg.js +1 -1
  24. package/dist/rooms/protocol/ClientMsg.js.map +1 -1
  25. package/dist/rooms/protocol/Op.js +4 -4
  26. package/dist/rooms/protocol/Op.js.map +1 -1
  27. package/dist/rooms/protocol/SerializedCrdt.js +4 -4
  28. package/dist/rooms/protocol/SerializedCrdt.js.map +1 -1
  29. package/dist/rooms/protocol/ServerMsg.js +1 -1
  30. package/dist/rooms/protocol/ServerMsg.js.map +1 -1
  31. package/dist/rooms/rooms.controller.d.ts +33 -7
  32. package/dist/rooms/rooms.controller.js +126 -31
  33. package/dist/rooms/rooms.controller.js.map +1 -1
  34. package/dist/rooms/rooms.gateway.d.ts +3 -1
  35. package/dist/rooms/rooms.gateway.js +14 -7
  36. package/dist/rooms/rooms.gateway.js.map +1 -1
  37. package/dist/rooms/rooms.guard.d.ts +1 -3
  38. package/dist/rooms/rooms.guard.js +4 -7
  39. package/dist/rooms/rooms.guard.js.map +1 -1
  40. package/dist/rooms/rooms.module.js +9 -4
  41. package/dist/rooms/rooms.module.js.map +1 -1
  42. package/dist/rooms/rooms.moleculer.d.ts +11 -0
  43. package/dist/rooms/rooms.moleculer.js +91 -0
  44. package/dist/rooms/rooms.moleculer.js.map +1 -0
  45. package/dist/rooms/rooms.service.d.ts +44 -1
  46. package/dist/rooms/rooms.service.js +161 -5
  47. package/dist/rooms/rooms.service.js.map +1 -1
  48. package/package.json +14 -5
  49. package/src/rooms/app.controller.ts +63 -0
  50. package/src/rooms/dtos/notifications.dto.ts +9 -0
  51. package/src/rooms/dtos/room_members.dto.ts +31 -0
  52. package/src/rooms/dtos/rooms.dto.ts +51 -0
  53. package/src/rooms/notifications.service.ts +85 -0
  54. package/src/rooms/rooms.controller.ts +139 -20
  55. package/src/rooms/rooms.gateway.ts +17 -4
  56. package/src/rooms/rooms.guard.ts +1 -1
  57. package/src/rooms/rooms.module.ts +7 -2
  58. package/src/rooms/rooms.moleculer.ts +78 -0
  59. package/src/rooms/rooms.service.ts +234 -1
  60. package/.eslintrc.js +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.module.js","sourceRoot":"","sources":["../../src/rooms/rooms.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAAqD;AACrD,mDAA+C;AAC/C,yCAA+C;AAC/C,qCAAwC;AACxC,yCAA4C;AAC5C,mDAA+C;AAC/C,yCAA6C;AAgBtC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAbvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,iBAAU;YACV,oBAAa;YACb,kBAAW;YACX,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,QAAQ;gBAC7C,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;aAClC,CAAC;SACH;QACD,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE,CAAC,4BAAY,EAAE,4BAAY,CAAC;KACxC,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"rooms.module.js","sourceRoot":"","sources":["../../src/rooms/rooms.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAAqD;AACrD,mDAA+C;AAC/C,yCAA+C;AAC/C,qCAAwC;AACxC,yCAA4C;AAC5C,mDAA+C;AAC/C,yCAA6C;AAC7C,2CAA8C;AAC9C,mEAA+D;AAC/D,qDAAsD;AACtD,uDAAmD;AAiB5C,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAdvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,iBAAU;YACV,oBAAa;YACb,kBAAW;YACX,mBAAW;YACX,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,QAAQ;gBAC7C,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;aAClC,CAAC;SACH;QACD,WAAW,EAAE,CAAC,mCAAkB,EAAE,kCAAe,CAAC;QAClD,SAAS,EAAE,CAAC,4BAAY,EAAE,4BAAY,EAAE,4CAAoB,EAAE,gCAAc,CAAC;KAC9E,CAAC;GACW,WAAW,CAAG;AAAd,kCAAW"}
@@ -0,0 +1,11 @@
1
+ import { Service, Context, ServiceBroker } from 'moleculer';
2
+ import { RoomsService } from './rooms.service';
3
+ export declare class RoomsMoleculer extends Service {
4
+ private readonly roomsService;
5
+ constructor(roomsService: RoomsService, broker: ServiceBroker);
6
+ serviceCreated(): void;
7
+ serviceStarted(): Promise<void>;
8
+ serviceStopped(): Promise<void>;
9
+ createThread(ctx: Context): Promise<any>;
10
+ createComment(ctx: Context): Promise<any>;
11
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RoomsMoleculer = void 0;
16
+ const moleculer_1 = require("moleculer");
17
+ const common_1 = require("@nestjs/common");
18
+ const moleculer_2 = require("@builder6/moleculer");
19
+ const rooms_service_1 = require("./rooms.service");
20
+ let RoomsMoleculer = class RoomsMoleculer extends moleculer_1.Service {
21
+ constructor(roomsService, broker) {
22
+ super(broker);
23
+ this.roomsService = roomsService;
24
+ this.parseServiceSchema({
25
+ name: '@builder6/rooms',
26
+ settings: {},
27
+ actions: {
28
+ createComment: this.createComment,
29
+ createThread: this.createThread,
30
+ },
31
+ created: this.serviceCreated,
32
+ started: this.serviceStarted,
33
+ stopped: this.serviceStopped,
34
+ });
35
+ }
36
+ serviceCreated() { }
37
+ async serviceStarted() { }
38
+ async serviceStopped() { }
39
+ async createThread(ctx) {
40
+ const { id, comment, metadata, resolved, roomId, userId } = ctx.params;
41
+ try {
42
+ const result = this.roomsService.createThread({
43
+ id,
44
+ comment,
45
+ metadata,
46
+ resolved,
47
+ roomId,
48
+ userId,
49
+ });
50
+ return result;
51
+ }
52
+ catch (error) {
53
+ console.error(error);
54
+ return {
55
+ error: {
56
+ message: error.message,
57
+ },
58
+ };
59
+ }
60
+ }
61
+ async createComment(ctx) {
62
+ const { id, attachmentIds, body, roomId, threadId, userId } = ctx.params;
63
+ try {
64
+ const result = this.roomsService.createComment({
65
+ id,
66
+ attachmentIds,
67
+ body,
68
+ roomId,
69
+ threadId,
70
+ userId,
71
+ });
72
+ return result;
73
+ }
74
+ catch (error) {
75
+ console.error(error);
76
+ return {
77
+ error: {
78
+ message: error.message,
79
+ },
80
+ };
81
+ }
82
+ }
83
+ };
84
+ RoomsMoleculer = __decorate([
85
+ (0, common_1.Injectable)(),
86
+ __param(1, (0, moleculer_2.InjectBroker)()),
87
+ __metadata("design:paramtypes", [rooms_service_1.RoomsService,
88
+ moleculer_1.ServiceBroker])
89
+ ], RoomsMoleculer);
90
+ exports.RoomsMoleculer = RoomsMoleculer;
91
+ //# sourceMappingURL=rooms.moleculer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.moleculer.js","sourceRoot":"","sources":["../../src/rooms/rooms.moleculer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA4D;AAC5D,2CAA4C;AAC5C,mDAAmD;AACnD,mDAA+C;AAGxC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,mBAAO;IACzC,YACmB,YAA0B,EAC3B,MAAqB;QAErC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHG,iBAAY,GAAZ,YAAY,CAAc;QAK3C,IAAI,CAAC,kBAAkB,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;YACD,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,cAAc,KAAI,CAAC;IAEnB,KAAK,CAAC,cAAc,KAAI,CAAC;IAEzB,KAAK,CAAC,cAAc,KAAI,CAAC;IAEzB,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GACvD,GAAG,CAAC,MAAa,CAAC;QACpB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBAC5C,EAAE;gBACF,OAAO;gBACP,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;gBACL,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;aACF,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAY;QAC9B,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GACzD,GAAG,CAAC,MAAa,CAAC;QACpB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC7C,EAAE;gBACF,aAAa;gBACb,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;gBACL,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;aACF,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAvEY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,wBAAY,GAAE,CAAA;qCADgB,4BAAY;QACnB,yBAAa;GAH5B,cAAc,CAuE1B;AAvEY,wCAAc"}
@@ -1,4 +1,8 @@
1
1
  import { MongodbService } from '@builder6/core';
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';
2
6
  export interface CreateThreadParams {
3
7
  id?: string;
4
8
  comment?: CreateCommentParams;
@@ -22,14 +26,47 @@ export interface Attachment {
22
26
  size: number;
23
27
  type: string;
24
28
  }
29
+ export declare enum CommentType {
30
+ Paragraph = "paragraph"
31
+ }
32
+ export declare enum CommentBodyInlineType {
33
+ Mention = "mention",
34
+ Link = "link"
35
+ }
25
36
  export declare class RoomsService {
26
37
  private mongodbService;
27
- constructor(mongodbService: MongodbService);
38
+ private jwtService;
39
+ private notificationsService;
40
+ constructor(mongodbService: MongodbService, jwtService: JwtService, notificationsService: NotificationsService);
41
+ getToken({ spaceId, userId, perms, }: {
42
+ spaceId: string;
43
+ userId: string;
44
+ perms: object;
45
+ }): Promise<{
46
+ token: string;
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
+ }>;
28
56
  getAttachmentById(attachmentId: string): Promise<Attachment>;
29
57
  getUsers(userIds: string | string[]): Promise<any[]>;
30
58
  searchUsers(spaceId: string, keyword: string, roomId: string): Promise<string[]>;
31
59
  getThread(roomId: string, threadId: string): Promise<any>;
32
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[]>;
33
70
  getComments(roomId: string, threadId: string): Promise<any>;
34
71
  createThread({ id, comment, metadata, resolved, roomId, userId, }: CreateThreadParams): Promise<any>;
35
72
  updateThread(threadId: any, thread?: CreateThreadParams): Promise<any>;
@@ -48,4 +85,10 @@ export declare class RoomsService {
48
85
  userId: string;
49
86
  emoji: string;
50
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[]>;
51
94
  }
@@ -9,12 +9,64 @@ 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
+ const jwt_1 = require("@nestjs/jwt");
14
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
+ var CommentType;
20
+ (function (CommentType) {
21
+ CommentType["Paragraph"] = "paragraph";
22
+ })(CommentType = exports.CommentType || (exports.CommentType = {}));
23
+ var CommentBodyInlineType;
24
+ (function (CommentBodyInlineType) {
25
+ CommentBodyInlineType["Mention"] = "mention";
26
+ CommentBodyInlineType["Link"] = "link";
27
+ })(CommentBodyInlineType = exports.CommentBodyInlineType || (exports.CommentBodyInlineType = {}));
15
28
  let RoomsService = class RoomsService {
16
- constructor(mongodbService) {
29
+ constructor(mongodbService, jwtService, notificationsService) {
17
30
  this.mongodbService = mongodbService;
31
+ this.jwtService = jwtService;
32
+ this.notificationsService = notificationsService;
33
+ }
34
+ async getToken({ spaceId, userId, perms, }) {
35
+ const payload = {
36
+ k: 'acc',
37
+ pid: spaceId,
38
+ sid: spaceId,
39
+ uid: userId,
40
+ mcpr: 10,
41
+ perms: perms,
42
+ jti: 'S4EMiESTDe6k',
43
+ };
44
+ const token = await this.jwtService.signAsync(payload);
45
+ return { token };
46
+ }
47
+ async getRoomToken({ roomId, spaceId, userId, readonly = false, }) {
48
+ let room = await this.getRoom(roomId);
49
+ if (!room) {
50
+ room = await this.createRoom({
51
+ _id: roomId,
52
+ name: 'Room ' + roomId,
53
+ });
54
+ }
55
+ let member = await this.getRoomMember(roomId, userId);
56
+ if (!member) {
57
+ member = await this.createRoomMember(room, {
58
+ userId,
59
+ });
60
+ }
61
+ const scopes = readonly ? rooms_dto_1.READ_ACCESS : member.scopes;
62
+ const perms = {
63
+ [roomId]: scopes,
64
+ };
65
+ return await this.getToken({
66
+ spaceId,
67
+ userId,
68
+ perms,
69
+ });
18
70
  }
19
71
  async getAttachmentById(attachmentId) {
20
72
  const attachment = await this.mongodbService.findOne('cfs.files.filerecord', {
@@ -78,6 +130,17 @@ let RoomsService = class RoomsService {
78
130
  }
79
131
  return threads;
80
132
  }
133
+ async getThreadsByIds(notifications) {
134
+ const threadPromises = [];
135
+ for (let i = 0; i < notifications.length; i++) {
136
+ const notification = notifications[i];
137
+ threadPromises.push(this.getThread(notification.roomId, notification.threadId));
138
+ }
139
+ if (threadPromises.length > 0) {
140
+ return Promise.all(threadPromises);
141
+ }
142
+ return [];
143
+ }
81
144
  async getComments(roomId, threadId) {
82
145
  const comments = await this.mongodbService.find('b6_comments', {
83
146
  roomId: roomId,
@@ -143,6 +206,30 @@ let RoomsService = class RoomsService {
143
206
  const attachment = await this.getAttachmentById(attachmentId);
144
207
  result.attachments.push(attachment);
145
208
  }
209
+ const { content } = body;
210
+ let notificationsPromises;
211
+ const mentionUsers = [];
212
+ for (const message of content) {
213
+ if (message.type === CommentType.Paragraph) {
214
+ message.children
215
+ .filter((child) => child?.type === CommentBodyInlineType.Mention)
216
+ .forEach((child) => mentionUsers.push(child.id));
217
+ }
218
+ }
219
+ if (mentionUsers && mentionUsers.length > 0) {
220
+ notificationsPromises = (0, lodash_1.uniq)(mentionUsers).map((userId) => {
221
+ return this.notificationsService.createThreadNotification({
222
+ id,
223
+ userId,
224
+ kind: 'thread',
225
+ notifiedAt: new Date(),
226
+ readAt: null,
227
+ roomId,
228
+ threadId,
229
+ });
230
+ });
231
+ await Promise.all(notificationsPromises);
232
+ }
146
233
  delete result['_id'];
147
234
  delete result['attachmentIds'];
148
235
  return result;
@@ -216,10 +303,79 @@ let RoomsService = class RoomsService {
216
303
  await this.mongodbService.findOneAndUpdate('b6_comments', { _id: commentId }, comment);
217
304
  return null;
218
305
  }
306
+ async createRoom({ _id, name, description = '', membershipType = 'standard', members = [], defaultNotifications = ['replies', 'mentions'], defaultScopes = ['room:write'], }) {
307
+ const newRoom = {
308
+ createdAt: new Date().toISOString(),
309
+ updatedAt: new Date().toISOString(),
310
+ _id,
311
+ name,
312
+ description,
313
+ membershipType,
314
+ defaultNotifications,
315
+ defaultScopes,
316
+ };
317
+ const room = await this.mongodbService.insertOne('b6_rooms', newRoom);
318
+ room.members = [];
319
+ for (const member of members) {
320
+ const newMember = await this.createRoomMember(room, member);
321
+ room.members.push(newMember);
322
+ }
323
+ return room;
324
+ }
325
+ async createRoomMember(room, member) {
326
+ const { _id, userId, roles = [], notifications = room.defaultNotifications, scopes = room.defaultScopes, } = member;
327
+ const newMember = {
328
+ _id,
329
+ userId,
330
+ roles,
331
+ roomId: room._id,
332
+ notifications,
333
+ scopes,
334
+ createdAt: new Date().toISOString(),
335
+ };
336
+ const result = await this.mongodbService.insertOne('b6_room_members', newMember);
337
+ return result;
338
+ }
339
+ async getRoom(roomId) {
340
+ const room = await this.mongodbService.findOne('b6_rooms', {
341
+ _id: roomId,
342
+ });
343
+ if (!room) {
344
+ return null;
345
+ }
346
+ room.members = await this.getRoomMembers(roomId);
347
+ return room;
348
+ }
349
+ async getRoomMembers(roomId) {
350
+ const members = await this.mongodbService.find('b6_room_members', {
351
+ roomId,
352
+ });
353
+ return members;
354
+ }
355
+ async getRoomMember(roomId, userId) {
356
+ const member = await this.mongodbService.findOne('b6_room_members', {
357
+ roomId,
358
+ userId,
359
+ });
360
+ return member;
361
+ }
362
+ async getMyRooms(userId) {
363
+ const roomMembers = await this.mongodbService.find('b6_room_members', {
364
+ userId,
365
+ });
366
+ const rooms = [];
367
+ for (const roomMember of roomMembers) {
368
+ const room = await this.getRoom(roomMember.roomId);
369
+ rooms.push(room);
370
+ }
371
+ return rooms;
372
+ }
219
373
  };
220
- exports.RoomsService = RoomsService;
221
- exports.RoomsService = RoomsService = __decorate([
374
+ RoomsService = __decorate([
222
375
  (0, common_1.Injectable)(),
223
- __metadata("design:paramtypes", [core_1.MongodbService])
376
+ __metadata("design:paramtypes", [core_1.MongodbService,
377
+ jwt_1.JwtService,
378
+ notifications_service_1.NotificationsService])
224
379
  ], RoomsService);
380
+ exports.RoomsService = RoomsService;
225
381
  //# 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":"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"}
package/package.json CHANGED
@@ -1,16 +1,22 @@
1
1
  {
2
2
  "name": "@builder6/rooms",
3
- "version": "0.9.2",
3
+ "version": "0.10.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
7
7
  "main": "dist/plugin.module.js",
8
8
  "scripts": {
9
- "build": "rm -rf dist && tsc",
10
- "build:watch": "rm -rf dist && tsc --watch"
9
+ "build": "rimraf dist && tsc",
10
+ "build:watch": "rimraf dist && tsc --watch"
11
11
  },
12
12
  "dependencies": {
13
- "@builder6/core": "^0.9.2"
13
+ "@builder6/core": "^0.10.0",
14
+ "@builder6/moleculer": "^0.10.0",
15
+ "@builder6/pages": "^0.10.0",
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": "7a86e5904a102487f7b1c13dc869961c58af0d17"
41
+ "devDependencies": {
42
+ "@types/lodash": "^4.17.13"
43
+ },
44
+ "gitHead": "b131a05f3cb97de992f5e76061ec6f768e64ad21"
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,9 @@
1
+ export class NotificationDTO {
2
+ id: string;
3
+ userId: string;
4
+ kind: string;
5
+ notifiedAt?: Date;
6
+ readAt?: Date;
7
+ roomId: string;
8
+ threadId: string;
9
+ }
@@ -0,0 +1,31 @@
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
+
17
+ @ApiProperty()
18
+ roles?: string[] = [];
19
+
20
+ @ApiProperty({
21
+ enum: ['all', 'replies', 'mentions'],
22
+ default: ['replies', 'mentions'],
23
+ })
24
+ notifications?: string[] = ['replies', 'mentions'];
25
+
26
+ @ApiProperty({
27
+ enum: ['room:read', 'room:write'],
28
+ default: FULL_ACCESS,
29
+ })
30
+ scopes?: string[] = FULL_ACCESS;
31
+ }
@@ -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
+ }