@social.dev/server-sdk 0.0.1-alpha.50 → 0.0.1-alpha.52

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.
@@ -11,7 +11,6 @@ const acl_factory_1 = require("../core/acl/acl.factory");
11
11
  const conversation_entity_1 = require("./entities/conversation.entity");
12
12
  const common_1 = require("@nestjs/common");
13
13
  const conversation_type_enum_1 = require("./enums/conversation-type.enum");
14
- const community_entity_1 = require("../community/entities/community.entity");
15
14
  const message_entity_1 = require("./entities/message.entity");
16
15
  let ChatAclService = class ChatAclService {
17
16
  registerRules() {
@@ -21,9 +20,7 @@ let ChatAclService = class ChatAclService {
21
20
  return true;
22
21
  }
23
22
  if (conversation.type === conversation_type_enum_1.ConversationType.Community) {
24
- const partialCommunity = new community_entity_1.Community();
25
- partialCommunity.id = parseInt(conversation.community);
26
- return getAbility().can(acl_factory_1.Action.Read, partialCommunity);
23
+ return getAbility().can(acl_factory_1.Action.Read, conversation.community);
27
24
  }
28
25
  return false;
29
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat.acl.js","sourceRoot":"","sources":["../../src/chat/chat.acl.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAA0E;AAC1E,wEAAkE;AAClE,2CAA4C;AAC5C,2EAAkE;AAClE,6EAAkE;AAClE,8DAAwD;AAGjD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,aAAa;QAEX,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,OAAO,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,sCAAgB,EAAE,CAAC,YAAY,EAAE,EAAE;gBACzD,IAAI,YAAY,CAAC,IAAI,KAAK,yCAAgB,CAAC,QAAQ,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,YAAY,CAAC,IAAI,KAAK,yCAAgB,CAAC,SAAS,EAAE,CAAC;oBACrD,MAAM,gBAAgB,GAAG,IAAI,4BAAS,EAAE,CAAC;oBACzC,gBAAgB,CAAC,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAgB,CAAC,CAAC;oBAC9D,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACzD,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,sCAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAGH,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC7B,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,sCAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CACjD,CAAC;QAGF,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CACzC,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,4BAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1C,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CACpD,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AApCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CAoC1B"}
1
+ {"version":3,"file":"chat.acl.js","sourceRoot":"","sources":["../../src/chat/chat.acl.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAA0E;AAC1E,wEAAkE;AAClE,2CAA4C;AAC5C,2EAAkE;AAElE,8DAAwD;AAGjD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,aAAa;QAEX,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,OAAO,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,sCAAgB,EAAE,CAAC,YAAY,EAAE,EAAE;gBACzD,IAAI,YAAY,CAAC,IAAI,KAAK,yCAAgB,CAAC,QAAQ,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,YAAY,CAAC,IAAI,KAAK,yCAAgB,CAAC,SAAS,EAAE,CAAC;oBACrD,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/D,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,sCAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAGH,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC7B,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,sCAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CACjD,CAAC;QAGF,wBAAU,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CACzC,GAAG,CAAC,oBAAM,CAAC,MAAM,EAAE,4BAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1C,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAM,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CACpD,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AAlCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CAkC1B"}
@@ -1,18 +1,22 @@
1
1
  import { ChatService } from './chat.service';
2
2
  import { CreateConversationDto } from './dto/create-conversation.dto';
3
3
  import { PaginatedResponseDto } from '~/common/dto/paginated-response.dto';
4
- import { ChatConversationResponseDto, ChatMessageResponseDto } from './dto/responses.dto';
4
+ import { ChatConversationResponseDto, ChatMessageResponseDto, ChatUnreadCountDto } from './dto/responses.dto';
5
5
  import { CreateMessageDto } from './dto/create-message.dto';
6
6
  import { Community } from '~/community/entities/community.entity';
7
+ import { UpdateChatReadCursorDto } from './dto/update-cursor.dto';
8
+ import { ConversationType } from './enums/conversation-type.enum';
7
9
  export declare class ChatController {
8
10
  private service;
9
11
  constructor(service: ChatService);
10
12
  getConversation(conversationId: string): Promise<ChatConversationResponseDto>;
11
- listConversations(communityId?: Community['id'], limit?: number, offset?: number): Promise<PaginatedResponseDto<ChatConversationResponseDto>>;
13
+ listConversations(type?: ConversationType, communityId?: Community['id'], limit?: number, offset?: number): Promise<PaginatedResponseDto<ChatConversationResponseDto>>;
12
14
  createConversation(dto: CreateConversationDto): Promise<ChatConversationResponseDto>;
13
15
  deleteConversation(): void;
14
16
  getMessage(messageId: string): ChatMessageResponseDto;
15
17
  listMessages(conversationId: string, limit: number | undefined, cursor: any): Promise<PaginatedResponseDto<ChatMessageResponseDto>>;
16
18
  sendMessage(dto: CreateMessageDto): Promise<ChatMessageResponseDto>;
17
19
  deleteMessage(): void;
20
+ updateReadCursor(dto: UpdateChatReadCursorDto): Promise<void>;
21
+ getUnreadCount(): Promise<ChatUnreadCountDto>;
18
22
  }
@@ -24,6 +24,8 @@ const create_message_dto_1 = require("./dto/create-message.dto");
24
24
  const community_entity_1 = require("../community/entities/community.entity");
25
25
  const swagger_1 = require("@nestjs/swagger");
26
26
  const cursor_1 = require("../common/utils/cursor");
27
+ const update_cursor_dto_1 = require("./dto/update-cursor.dto");
28
+ const conversation_type_enum_1 = require("./enums/conversation-type.enum");
27
29
  let ChatController = class ChatController {
28
30
  service;
29
31
  constructor(service) {
@@ -33,15 +35,16 @@ let ChatController = class ChatController {
33
35
  const conversation = await this.service.getConversation(+conversationId);
34
36
  return (0, class_transformer_1.plainToInstance)(responses_dto_1.ChatConversationResponseDto, conversation);
35
37
  }
36
- async listConversations(communityId, limit = 20, offset = 0) {
37
- const [result, count] = await this.service.listConversations({
38
+ async listConversations(type, communityId, limit = 20, offset = 0) {
39
+ const result = await this.service.listConversations({
40
+ type,
38
41
  communityId,
39
42
  limit,
40
43
  offset,
41
44
  });
42
45
  return {
43
46
  result: result.map((c) => (0, class_transformer_1.plainToInstance)(responses_dto_1.ChatConversationResponseDto, c)),
44
- count,
47
+ count: Infinity,
45
48
  next: '',
46
49
  previous: '',
47
50
  };
@@ -84,6 +87,15 @@ let ChatController = class ChatController {
84
87
  return (0, class_transformer_1.plainToInstance)(responses_dto_1.ChatMessageResponseDto, message);
85
88
  }
86
89
  deleteMessage() { }
90
+ updateReadCursor(dto) {
91
+ return this.service.setReadCursor({
92
+ conversationId: dto.conversation,
93
+ ts: new Date(dto.unixts * 1000),
94
+ });
95
+ }
96
+ async getUnreadCount() {
97
+ return this.service.getUnreadCount();
98
+ }
87
99
  };
88
100
  exports.ChatController = ChatController;
89
101
  __decorate([
@@ -96,6 +108,11 @@ __decorate([
96
108
  ], ChatController.prototype, "getConversation", null);
97
109
  __decorate([
98
110
  (0, common_1.Get)('chat.conversation.list'),
111
+ (0, swagger_1.ApiQuery)({
112
+ name: 'type',
113
+ enum: conversation_type_enum_1.ConversationType,
114
+ required: false,
115
+ }),
99
116
  (0, swagger_1.ApiQuery)({
100
117
  name: 'community',
101
118
  type: community_entity_1.Community['id'],
@@ -113,11 +130,12 @@ __decorate([
113
130
  }),
114
131
  (0, api_paginated_response_1.ApiPaginatedResponse)(responses_dto_1.ChatConversationResponseDto),
115
132
  openapi.ApiResponse({ status: 200 }),
116
- __param(0, (0, common_1.Query)('community')),
117
- __param(1, (0, common_1.Query)('limit')),
118
- __param(2, (0, common_1.Query)('offset')),
133
+ __param(0, (0, common_1.Query)('type')),
134
+ __param(1, (0, common_1.Query)('community')),
135
+ __param(2, (0, common_1.Query)('limit')),
136
+ __param(3, (0, common_1.Query)('offset')),
119
137
  __metadata("design:type", Function),
120
- __metadata("design:paramtypes", [Object, Object, Object]),
138
+ __metadata("design:paramtypes", [String, Object, Object, Object]),
121
139
  __metadata("design:returntype", Promise)
122
140
  ], ChatController.prototype, "listConversations", null);
123
141
  __decorate([
@@ -179,6 +197,24 @@ __decorate([
179
197
  __metadata("design:paramtypes", []),
180
198
  __metadata("design:returntype", void 0)
181
199
  ], ChatController.prototype, "deleteMessage", null);
200
+ __decorate([
201
+ (0, common_1.Post)('chat.conversation.updateReadCursor'),
202
+ openapi.ApiResponse({ status: 201 }),
203
+ __param(0, (0, common_1.Body)()),
204
+ __metadata("design:type", Function),
205
+ __metadata("design:paramtypes", [update_cursor_dto_1.UpdateChatReadCursorDto]),
206
+ __metadata("design:returntype", void 0)
207
+ ], ChatController.prototype, "updateReadCursor", null);
208
+ __decorate([
209
+ (0, swagger_1.ApiOperation)({
210
+ summary: 'Retrieve the count of unread chats',
211
+ }),
212
+ (0, common_1.Get)('chat.conversation.getUnreadCount'),
213
+ openapi.ApiResponse({ status: 200, type: require("./dto/responses.dto").ChatUnreadCountDto }),
214
+ __metadata("design:type", Function),
215
+ __metadata("design:paramtypes", []),
216
+ __metadata("design:returntype", Promise)
217
+ ], ChatController.prototype, "getUnreadCount", null);
182
218
  exports.ChatController = ChatController = __decorate([
183
219
  (0, common_1.Controller)(),
184
220
  __metadata("design:paramtypes", [chat_service_1.ChatService])
@@ -1 +1 @@
1
- {"version":3,"file":"chat.controller.js","sourceRoot":"","sources":["../../src/chat/chat.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.controller.js","sourceRoot":"","sources":["../../src/chat/chat.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAOwB;AACxB,iDAA6C;AAC7C,2EAAsE;AAEtE,uDAI6B;AAC7B,wFAAkF;AAClF,yDAAoD;AAGpD,iEAA4D;AAC5D,6EAAkE;AAClE,6CAAsE;AACtE,mDAAmE;AACnE,+DAAkE;AAClE,2EAAkE;AAG3D,IAAM,cAAc,GAApB,MAAM,cAAc;IACL;IAApB,YAAoB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAGtC,AAAN,KAAK,CAAC,eAAe,CACI,cAAsB;QAE7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,CAAC;QACzE,OAAO,IAAA,mCAAe,EAAC,2CAA2B,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAwBK,AAAN,KAAK,CAAC,iBAAiB,CACN,IAAuB,EAClB,WAA6B,EACjC,QAAQ,EAAE,EACT,SAAS,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAClD,IAAI;YACJ,WAAW;YACX,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,IAAA,mCAAe,EAAC,2CAA2B,EAAE,CAAC,CAAC,CAChD;YACD,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CACd,GAA0B;QAElC,OAAO,IAAA,mCAAe,EACpB,2CAA2B,EAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAC3C,CAAC;IACJ,CAAC;IAGD,kBAAkB,KAAI,CAAC;IAGvB,UAAU,CAAmB,SAAiB;QAC5C,OAAO,IAAW,CAAC;IACrB,CAAC;IAcK,AAAN,KAAK,CAAC,YAAY,CACO,cAAsB,EAC7B,QAAQ,EAAE,EACT,MAAM;QAEvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACtD,cAAc,EAAE,CAAC,cAAc;YAC/B,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAIxC,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,GAAG,MAAM;YACxD,CAAC,CAAC,IAAA,qBAAY,EAAC,MAAM,CAAC;YACtB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEpB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAmB,CAC3B,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,qBAAY,EACvB,IAAI,EACJ,IAAI,EACJ,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CACzC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAA,qBAAY,EAC3B,IAAI,EACJ,IAAI,EACJ,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,sCAAsB,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK;YACL,IAAI;YACJ,QAAQ;SACT,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACP,GAAqB;QAE7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,cAAc,EAAE,CAAC,GAAG,CAAC,YAAY;YACjC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;QACH,OAAO,IAAA,mCAAe,EAAC,sCAAsB,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAGD,aAAa,KAAI,CAAC;IAGlB,gBAAgB,CAAS,GAA4B;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAChC,cAAc,EAAE,GAAG,CAAC,YAAY;YAChC,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAMK,AAAN,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF,CAAA;AAhKY,wCAAc;AAInB;IADL,IAAA,YAAG,EAAC,wBAAwB,CAAC;;IAE3B,WAAA,IAAA,cAAK,EAAC,cAAc,CAAC,CAAA;;;;qDAIvB;AAwBK;IAtBL,IAAA,YAAG,EAAC,wBAAwB,CAAC;IAC7B,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,yCAAgB;QACtB,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,4BAAS,CAAC,IAAI,CAAC;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,6CAAoB,EAAC,2CAA2B,CAAC;;IAE/C,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;uDAgBjB;AAGK;IADL,IAAA,aAAI,EAAC,0BAA0B,CAAC;;IAE9B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,+CAAqB;;wDAMnC;AAGD;IADC,IAAA,aAAI,EAAC,0BAA0B,CAAC;;;;;wDACV;AAGvB;IADC,IAAA,YAAG,EAAC,mBAAmB,CAAC;;IACb,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;;;oCAAqB,sCAAsB;gDAEtE;AAcK;IAZL,IAAA,YAAG,EAAC,mBAAmB,CAAC;IACxB,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,6CAAoB,EAAC,sCAAsB,CAAC;;IAE1C,WAAA,IAAA,cAAK,EAAC,cAAc,CAAC,CAAA;IACrB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;kDAwCjB;AAGK;IADL,IAAA,aAAI,EAAC,mBAAmB,CAAC;;IAEvB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,qCAAgB;;iDAQ9B;AAGD;IADC,IAAA,aAAI,EAAC,qBAAqB,CAAC;;;;;mDACV;AAGlB;IADC,IAAA,aAAI,EAAC,oCAAoC,CAAC;;IACzB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,2CAAuB;;sDAKpD;AAMK;IAJL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,oCAAoC;KAC9C,CAAC;IACD,IAAA,YAAG,EAAC,kCAAkC,CAAC;;;;;oDAGvC;yBA/JU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEkB,0BAAW;GAD7B,cAAc,CAgK1B"}
@@ -24,6 +24,7 @@ const acl_module_1 = require("../core/acl/acl.module");
24
24
  const chat_acl_1 = require("./chat.acl");
25
25
  const community_module_1 = require("../community/community.module");
26
26
  const media_module_1 = require("../media/media.module");
27
+ const read_cursor_entity_1 = require("./entities/read-cursor.entity");
27
28
  let ChatModule = class ChatModule {
28
29
  acl;
29
30
  constructor(acl) {
@@ -39,6 +40,7 @@ exports.ChatModule = ChatModule = __decorate([
39
40
  conversation_entity_1.ChatConversation,
40
41
  conversation_member_entity_1.ChatConversationMember,
41
42
  message_entity_1.ChatMessage,
43
+ read_cursor_entity_1.ChatReadCursor,
42
44
  ]),
43
45
  hook_module_1.HookModule,
44
46
  push_notification_module_1.PushNotificationModule,
@@ -1 +1 @@
1
- {"version":3,"file":"chat.module.js","sourceRoot":"","sources":["../../src/chat/chat.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,iDAA6C;AAC7C,6CAAgD;AAChD,wEAAkE;AAClE,8DAAwD;AACxD,sFAA+E;AAC/E,0DAAqD;AACrD,uFAAiF;AACjF,kFAA4E;AAC5E,uDAAkD;AAClD,yCAA4C;AAC5C,oEAA+D;AAC/D,wDAAmD;AAoB5C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACD;IAApB,YAAoB,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;QACrC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAJY,gCAAU;qBAAV,UAAU;IAlBtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,sCAAgB;gBAChB,mDAAsB;gBACtB,4BAAW;aACZ,CAAC;YACF,wBAAU;YACV,iDAAsB;YACtB,uCAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,sBAAS;YACT,kCAAe;YACf,0BAAW;SACZ;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,EAAE,yBAAc,CAAC;QACxC,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;qCAEyB,yBAAc;GAD5B,UAAU,CAItB"}
1
+ {"version":3,"file":"chat.module.js","sourceRoot":"","sources":["../../src/chat/chat.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,iDAA6C;AAC7C,6CAAgD;AAChD,wEAAkE;AAClE,8DAAwD;AACxD,sFAA+E;AAC/E,0DAAqD;AACrD,uFAAiF;AACjF,kFAA4E;AAC5E,uDAAkD;AAClD,yCAA4C;AAC5C,oEAA+D;AAC/D,wDAAmD;AACnD,sEAA+D;AAqBxD,IAAM,UAAU,GAAhB,MAAM,UAAU;IACD;IAApB,YAAoB,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;QACrC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAJY,gCAAU;qBAAV,UAAU;IAnBtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,sCAAgB;gBAChB,mDAAsB;gBACtB,4BAAW;gBACX,mCAAc;aACf,CAAC;YACF,wBAAU;YACV,iDAAsB;YACtB,uCAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,sBAAS;YACT,kCAAe;YACf,0BAAW;SACZ;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,EAAE,yBAAc,CAAC;QACxC,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;qCAEyB,yBAAc;GAD5B,UAAU,CAItB"}
@@ -3,6 +3,7 @@ import { DataSource, Repository } from 'typeorm';
3
3
  import { ChatMessage } from './entities/message.entity';
4
4
  import { CreateConversationDto } from './dto/create-conversation.dto';
5
5
  import { ChatConversationMember } from './entities/conversation-member.entity';
6
+ import { ConversationType } from './enums/conversation-type.enum';
6
7
  import { PushNotificationService } from '~/notification/push-notification.service';
7
8
  import { EventStreamService } from '~/core/event-stream/event-stream.service';
8
9
  import { Community } from '~/community/entities/community.entity';
@@ -10,17 +11,20 @@ import { AclFactory } from '~/core/acl/acl.factory';
10
11
  import { CommunityService } from '~/community/community.service';
11
12
  import { Audio } from '~/media/entities/audio.entity';
12
13
  import { MediaService } from '~/media/media.service';
14
+ import { ChatReadCursor } from './entities/read-cursor.entity';
15
+ import { ChatUnreadCountDto } from './dto/responses.dto';
13
16
  export declare class ChatService {
14
17
  private conversationRepository;
15
18
  private memberRepository;
16
19
  private messageRepositoy;
20
+ private readCursorRepository;
17
21
  private dataSource;
18
22
  private aclFactory;
19
23
  private eventStream;
20
24
  private pushService;
21
25
  private communityService;
22
26
  private mediaService;
23
- constructor(conversationRepository: Repository<ChatConversation>, memberRepository: Repository<ChatConversationMember>, messageRepositoy: Repository<ChatMessage>, dataSource: DataSource, aclFactory: AclFactory, eventStream: EventStreamService, pushService: PushNotificationService, communityService: CommunityService, mediaService: MediaService);
27
+ constructor(conversationRepository: Repository<ChatConversation>, memberRepository: Repository<ChatConversationMember>, messageRepositoy: Repository<ChatMessage>, readCursorRepository: Repository<ChatReadCursor>, dataSource: DataSource, aclFactory: AclFactory, eventStream: EventStreamService, pushService: PushNotificationService, communityService: CommunityService, mediaService: MediaService);
24
28
  private findExistingOneOnOneConversation;
25
29
  createConversation(dto: CreateConversationDto): Promise<ChatConversation>;
26
30
  createCommunityConversation({ communityId, validate, }: {
@@ -30,11 +34,12 @@ export declare class ChatService {
30
34
  getConversation(id: number, opts?: {
31
35
  bypassAcl: boolean;
32
36
  }): Promise<ChatConversation | null>;
33
- listConversations({ communityId, limit, offset, }: {
37
+ listConversations({ type, communityId, limit, offset, }: {
38
+ type?: ConversationType;
34
39
  communityId?: Community['id'];
35
40
  limit?: number;
36
41
  offset?: number;
37
- }): Promise<[ChatConversation[], number]>;
42
+ }): Promise<ChatConversation[]>;
38
43
  listMembers({ conversationId, }: {
39
44
  conversationId: ChatConversation['id'];
40
45
  }): Promise<[ChatConversationMember[], number]>;
@@ -48,5 +53,10 @@ export declare class ChatService {
48
53
  limit?: number;
49
54
  cursor?: string;
50
55
  }): Promise<[ChatMessage[], number]>;
56
+ setReadCursor({ conversationId, ts, }: {
57
+ conversationId: ChatConversation['id'];
58
+ ts: Date;
59
+ }): Promise<void>;
60
+ getUnreadCount(): Promise<ChatUnreadCountDto>;
51
61
  private buildConversationQuery;
52
62
  }
@@ -34,20 +34,24 @@ const community_status_enum_1 = __importDefault(require("../community/enums/comm
34
34
  const cursor_1 = require("../common/utils/cursor");
35
35
  const audio_entity_1 = require("../media/entities/audio.entity");
36
36
  const media_service_1 = require("../media/media.service");
37
+ const read_cursor_entity_1 = require("./entities/read-cursor.entity");
38
+ const community_member_entity_1 = require("../community/entities/community-member.entity");
37
39
  let ChatService = class ChatService {
38
40
  conversationRepository;
39
41
  memberRepository;
40
42
  messageRepositoy;
43
+ readCursorRepository;
41
44
  dataSource;
42
45
  aclFactory;
43
46
  eventStream;
44
47
  pushService;
45
48
  communityService;
46
49
  mediaService;
47
- constructor(conversationRepository, memberRepository, messageRepositoy, dataSource, aclFactory, eventStream, pushService, communityService, mediaService) {
50
+ constructor(conversationRepository, memberRepository, messageRepositoy, readCursorRepository, dataSource, aclFactory, eventStream, pushService, communityService, mediaService) {
48
51
  this.conversationRepository = conversationRepository;
49
52
  this.memberRepository = memberRepository;
50
53
  this.messageRepositoy = messageRepositoy;
54
+ this.readCursorRepository = readCursorRepository;
51
55
  this.dataSource = dataSource;
52
56
  this.aclFactory = aclFactory;
53
57
  this.eventStream = eventStream;
@@ -110,20 +114,9 @@ let ChatService = class ChatService {
110
114
  return conversation;
111
115
  }
112
116
  async getConversation(id, opts = { bypassAcl: false }) {
113
- let conversation = await this.conversationRepository.findOne({
114
- where: {
115
- id,
116
- },
117
- loadRelationIds: true,
118
- });
119
- if (!conversation) {
120
- return null;
121
- }
122
- if (!conversation.community) {
123
- conversation = await this.buildConversationQuery()
124
- .andWhere('c.id = :id', { id })
125
- .getOne();
126
- }
117
+ const conversation = await this.buildConversationQuery()
118
+ .andWhere('c.id = :conversationId', { conversationId: id })
119
+ .getOne();
127
120
  if (opts.bypassAcl) {
128
121
  return conversation;
129
122
  }
@@ -132,7 +125,7 @@ let ChatService = class ChatService {
132
125
  ? conversation
133
126
  : null;
134
127
  }
135
- async listConversations({ communityId, limit = 100, offset = 0, }) {
128
+ async listConversations({ type, communityId, limit = 100, offset = 0, }) {
136
129
  if (this.aclFactory
137
130
  .withUser(context_1.Context.getUser())
138
131
  .cannot(acl_factory_1.Action.List, new conversation_entity_1.ChatConversation())) {
@@ -146,16 +139,13 @@ let ChatService = class ChatService {
146
139
  .cannot(acl_factory_1.Action.Read, communityPartial)) {
147
140
  throw new common_1.ForbiddenException();
148
141
  }
149
- const result = await this.conversationRepository.findAndCount({
150
- where: {
151
- community: { id: communityId },
152
- type: conversation_type_enum_1.ConversationType.Community,
153
- },
154
- take: limit,
155
- skip: offset,
156
- });
157
- if (result[0].length === 0) {
158
- result[0] = [
142
+ let result = await this.buildConversationQuery(conversation_type_enum_1.ConversationType.Community)
143
+ .andWhere('c."communityId" = :communityId', { communityId })
144
+ .skip(offset)
145
+ .limit(limit)
146
+ .getMany();
147
+ if (result.length === 0) {
148
+ result = [
159
149
  await this.createCommunityConversation({
160
150
  communityId,
161
151
  validate: false,
@@ -165,11 +155,11 @@ let ChatService = class ChatService {
165
155
  return result;
166
156
  }
167
157
  else {
168
- const query = await this.buildConversationQuery()
158
+ const query = this.buildConversationQuery(type)
159
+ .andWhere('c.type = :type', { type: type || conversation_type_enum_1.ConversationType.OneOnOne })
169
160
  .skip(offset)
170
161
  .limit(limit);
171
- const [conversations, count] = await query.getManyAndCount();
172
- return [conversations, count];
162
+ return await query.getMany();
173
163
  }
174
164
  }
175
165
  async listMembers({ conversationId, }) {
@@ -243,9 +233,16 @@ let ChatService = class ChatService {
243
233
  continue;
244
234
  }
245
235
  const tokens = await this.pushService.getTokensByUser(member.userId);
236
+ const scheme = 'seco';
237
+ const path = conversation.community
238
+ ? `/community/${conversation.community.id}/chat`
239
+ : `/chat/${conversation.id}`;
246
240
  this.pushService.sendPush({
247
241
  title: message.sender.name,
248
242
  body: text,
243
+ data: {
244
+ url: `${scheme}://${path}`,
245
+ },
249
246
  }, tokens);
250
247
  }
251
248
  return message;
@@ -278,11 +275,36 @@ let ChatService = class ChatService {
278
275
  relations: ['audio'],
279
276
  });
280
277
  }
281
- buildConversationQuery() {
278
+ async setReadCursor({ conversationId, ts, }) {
279
+ await this.getConversation(conversationId);
280
+ await this.readCursorRepository.upsert({
281
+ conversationId,
282
+ userId: context_1.Context.getUser()?.id,
283
+ ts,
284
+ }, ['conversationId', 'userId']);
285
+ }
286
+ async getUnreadCount() {
287
+ const ONE_ON_ONE = await this.buildConversationQuery(conversation_type_enum_1.ConversationType.OneOnOne)
288
+ .andWhere('("read_cursor".ts < "messages"."createdAt" OR "read_cursor".ts IS NULL AND "messages"."createdAt" IS NOT NULL)')
289
+ .getCount();
290
+ const COMMUNITY = await this.buildConversationQuery(conversation_type_enum_1.ConversationType.Community)
291
+ .andWhere('("read_cursor".ts < "messages"."createdAt" OR "read_cursor".ts IS NULL AND "messages"."createdAt" IS NOT NULL)')
292
+ .getCount();
293
+ return {
294
+ ONE_ON_ONE,
295
+ COMMUNITY,
296
+ };
297
+ }
298
+ buildConversationQuery(type) {
282
299
  const userId = context_1.Context.getUser()?.id;
283
- return (this.conversationRepository
284
- .createQueryBuilder('c')
285
- .innerJoin(conversation_member_entity_1.ChatConversationMember, 'membership', 'membership.userId = :userId AND membership.conversationId = c.id', { userId })
300
+ const query = this.conversationRepository.createQueryBuilder('c');
301
+ if (type) {
302
+ query.andWhere('c.type = :type', { type });
303
+ }
304
+ query
305
+ .leftJoin(conversation_member_entity_1.ChatConversationMember, 'membership', 'membership.userId = :userId AND membership.conversationId = c.id', { userId })
306
+ .leftJoinAndMapOne('c.community', community_entity_1.Community, 'community', 'c."communityId" = community.id')
307
+ .leftJoin(community_member_entity_1.CommunityMember, 'community_member', 'community.id = community_member."communityId" AND community_member."userId" = :userId')
286
308
  .leftJoinAndSelect('c.members', 'members', 'members.userId != :userId', {
287
309
  userId,
288
310
  })
@@ -294,7 +316,23 @@ let ChatService = class ChatService {
294
316
  .innerJoin(user_entity_1.User, 'user', 'user.id = membership_name.userId')
295
317
  .where('membership_name.conversationId = c.id')
296
318
  .andWhere('membership_name.userId != :userId', { userId })
297
- .limit(1), 'c_name'));
319
+ .limit(1), 'c_name');
320
+ return (query
321
+ .leftJoinAndMapOne('c.lastMessage', message_entity_1.ChatMessage, 'messages', '"messages"."conversationId" = c.id', {})
322
+ .andWhere((query) => '(messages.id=' +
323
+ query
324
+ .subQuery()
325
+ .select('id')
326
+ .from(message_entity_1.ChatMessage, 'messages')
327
+ .where('messages."conversationId"=c.id')
328
+ .orderBy('"createdAt"', 'DESC')
329
+ .limit(1)
330
+ .getQuery() +
331
+ ' OR messages.id IS NULL)')
332
+ .leftJoinAndMapOne('c.readCursor', read_cursor_entity_1.ChatReadCursor, 'read_cursor', '"read_cursor"."conversationId" = c.id AND "read_cursor"."userId" = :userId', {
333
+ userId,
334
+ })
335
+ .andWhere("(community_member.status = 'ACTIVE' OR membership IS NOT NULL)"));
298
336
  }
299
337
  };
300
338
  exports.ChatService = ChatService;
@@ -303,7 +341,9 @@ exports.ChatService = ChatService = __decorate([
303
341
  __param(0, (0, typeorm_1.InjectRepository)(conversation_entity_1.ChatConversation)),
304
342
  __param(1, (0, typeorm_1.InjectRepository)(conversation_member_entity_1.ChatConversationMember)),
305
343
  __param(2, (0, typeorm_1.InjectRepository)(message_entity_1.ChatMessage)),
344
+ __param(3, (0, typeorm_1.InjectRepository)(read_cursor_entity_1.ChatReadCursor)),
306
345
  __metadata("design:paramtypes", [typeorm_2.Repository,
346
+ typeorm_2.Repository,
307
347
  typeorm_2.Repository,
308
348
  typeorm_2.Repository,
309
349
  typeorm_2.DataSource,
@@ -1 +1 @@
1
- {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,26 @@ import { ChatMessage } from '../entities/message.entity';
3
3
  import { UserResponseDto } from '~/user/dto/user-response.dto';
4
4
  import { ConversationType } from '../enums/conversation-type.enum';
5
5
  import { MediaResponseDto } from '~/media/dto/media-response.dto';
6
+ import { CommunityResponseDto } from '~/community/dto/community-response.dto';
7
+ export declare class ChatMessageResponseDto {
8
+ id: ChatMessage['id'];
9
+ text?: ChatMessage['text'];
10
+ audio?: MediaResponseDto;
11
+ sender: UserResponseDto;
12
+ createdAt: Date;
13
+ }
6
14
  export declare class ChatConversationResponseDto {
7
15
  id: ChatConversation['id'];
8
16
  name: string;
9
17
  membersCount: number;
10
18
  type: ConversationType;
11
19
  members: UserResponseDto[];
12
- latestMessage: string;
20
+ community: CommunityResponseDto;
21
+ lastReadTs: Date;
22
+ latestMessage: ChatMessageResponseDto;
23
+ isUnread: boolean;
13
24
  }
14
- export declare class ChatMessageResponseDto {
15
- id: ChatMessage['id'];
16
- text?: ChatMessage['text'];
17
- audio?: MediaResponseDto;
18
- sender: UserResponseDto;
19
- createdAt: Date;
25
+ export declare class ChatUnreadCountDto {
26
+ [ConversationType.OneOnOne]: number;
27
+ [ConversationType.Community]: number;
20
28
  }