Fixed message deletion error and layout changes for the message input box.
This commit is contained in:
@@ -500,7 +500,8 @@ export class ConversationsService {
|
||||
role: string,
|
||||
externalRoomId: string,
|
||||
messageIds: string[],
|
||||
): Promise<{ messageIds: string[] }> {
|
||||
forEveryone = true,
|
||||
): Promise<{ messageIds: string[]; scope: 'all' | 'self' }> {
|
||||
await this.loadAccess(userId, organizationId, role);
|
||||
const roomId = externalRoomId.trim();
|
||||
if (!roomId) throw new BadRequestException('شناسه اتاق خالی است');
|
||||
@@ -513,17 +514,19 @@ export class ConversationsService {
|
||||
].slice(0, 100);
|
||||
if (!ids.length) throw new BadRequestException('شناسه پیام خالی است');
|
||||
|
||||
const scope = forEveryone ? 'all' : 'self';
|
||||
await this.prisma.conversationHiddenMessage.createMany({
|
||||
data: ids.map((messageId) => ({
|
||||
organizationId,
|
||||
externalRoomId: roomId,
|
||||
messageId,
|
||||
hiddenByUserId: userId,
|
||||
scope,
|
||||
})),
|
||||
skipDuplicates: true,
|
||||
});
|
||||
|
||||
return { messageIds: ids };
|
||||
return { messageIds: ids, scope };
|
||||
}
|
||||
|
||||
async listHiddenMessageIds(
|
||||
@@ -537,10 +540,14 @@ export class ConversationsService {
|
||||
if (!roomId) throw new BadRequestException('شناسه اتاق خالی است');
|
||||
|
||||
const rows = await this.prisma.conversationHiddenMessage.findMany({
|
||||
where: { organizationId, externalRoomId: roomId },
|
||||
where: {
|
||||
organizationId,
|
||||
externalRoomId: roomId,
|
||||
OR: [{ scope: 'all' }, { scope: 'self', hiddenByUserId: userId }],
|
||||
},
|
||||
select: { messageId: true },
|
||||
take: 5000,
|
||||
});
|
||||
return { messageIds: rows.map((r) => r.messageId) };
|
||||
return { messageIds: [...new Set(rows.map((r) => r.messageId))] };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user