feat: Add connection validation before sending messages and extend support chat admin access to include SUPER_ADMIN role.
This commit is contained in:
@@ -74,7 +74,7 @@ export class SupportChatController {
|
||||
@Query('limit') limit?: string,
|
||||
) {
|
||||
// Validate access
|
||||
const isAdmin = role === UserRole.ADMIN;
|
||||
const isAdmin = role === UserRole.ADMIN || role === UserRole.SUPER_ADMIN;
|
||||
await this.supportChatService.getChat(chatId, userId, isAdmin);
|
||||
|
||||
return this.supportChatService.getMessages(
|
||||
@@ -98,10 +98,10 @@ export class SupportChatController {
|
||||
@Body() dto: SendSupportMessageDto,
|
||||
) {
|
||||
// Validate access
|
||||
const isAdmin = role === UserRole.ADMIN;
|
||||
const isAdmin = role === UserRole.ADMIN || role === UserRole.SUPER_ADMIN;
|
||||
await this.supportChatService.getChat(chatId, userId, isAdmin);
|
||||
|
||||
const senderRole = role === UserRole.ADMIN ? 'ADMIN' : 'USER';
|
||||
const senderRole = (role === UserRole.ADMIN || role === UserRole.SUPER_ADMIN) ? 'ADMIN' : 'USER';
|
||||
const message = await this.supportChatService.sendMessage(chatId, userId, senderRole, dto.content);
|
||||
|
||||
// Emit WebSocket events for real-time updates
|
||||
@@ -136,7 +136,7 @@ export class SupportChatController {
|
||||
const result = await this.supportChatService.markAsRead(chatId, role);
|
||||
|
||||
// If admin marked as read, update sidebar badge for all admins
|
||||
if (role === UserRole.ADMIN) {
|
||||
if (role === UserRole.ADMIN || role === UserRole.SUPER_ADMIN) {
|
||||
const unreadTotal = await this.supportChatService.getAdminUnreadTotal();
|
||||
this.messagesGateway.server.to('admin_room').emit('support_unread_update', { unreadTotal });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user