Adding the typing... indicator, loading older messages, and managing members/admins after creation.

This commit is contained in:
2026-09-30 11:53:04 +03:30
parent b978708487
commit e1d456ad11
9 changed files with 992 additions and 28 deletions
@@ -11,6 +11,9 @@ import {
PinConversationMessageDto,
PinConversationRoomDto,
UnpinConversationMessageDto,
AddConversationRoomMemberDto,
RemoveConversationRoomMemberDto,
UpdateConversationRoomMemberRoleDto,
} from './dto';
import { ConversationsService } from './conversations.service';
@@ -81,6 +84,63 @@ export class ConversationsController {
);
}
@Get('rooms/members')
listMembers(
@CurrentUser() user: { userId: string; organizationId: string; role: string },
@Query('externalRoomId') externalRoomId: string,
) {
return this.conversations.listRoomMembers(
user.userId,
user.organizationId,
user.role,
externalRoomId || '',
);
}
@Post('rooms/members')
addMember(
@CurrentUser() user: { userId: string; organizationId: string; role: string },
@Body() dto: AddConversationRoomMemberDto,
) {
return this.conversations.addRoomMember(
user.userId,
user.organizationId,
user.role,
dto.externalRoomId,
dto.userId,
dto.role === 'admin' ? 'admin' : 'member',
);
}
@Post('rooms/members/remove')
removeMember(
@CurrentUser() user: { userId: string; organizationId: string; role: string },
@Body() dto: RemoveConversationRoomMemberDto,
) {
return this.conversations.removeRoomMember(
user.userId,
user.organizationId,
user.role,
dto.externalRoomId,
dto.userId,
);
}
@Post('rooms/members/role')
updateMemberRole(
@CurrentUser() user: { userId: string; organizationId: string; role: string },
@Body() dto: UpdateConversationRoomMemberRoleDto,
) {
return this.conversations.updateRoomMemberRole(
user.userId,
user.organizationId,
user.role,
dto.externalRoomId,
dto.userId,
dto.role === 'admin' ? 'admin' : 'member',
);
}
@Post('rooms/pin')
pinRoom(
@CurrentUser() user: { userId: string; organizationId: string; role: string },