- Added `GET /messages/unread-count` endpoint to retrieve the count of unread messages for a user. - Implemented `getUnreadCount` method in `MessagesService` and `MessagesRepository`. - Updated frontend service to support fetching unread message count via API.
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
Param,
|
|
Post,
|
|
Req,
|
|
UseGuards,
|
|
} from "@nestjs/common";
|
|
import { AuthGuard } from "../auth/guards/auth.guard";
|
|
import type { AuthenticatedRequest } from "../common/interfaces/request.interface";
|
|
import { CreateMessageDto } from "./dto/create-message.dto";
|
|
import { MessagesService } from "./messages.service";
|
|
|
|
@Controller("messages")
|
|
@UseGuards(AuthGuard)
|
|
export class MessagesController {
|
|
constructor(private readonly messagesService: MessagesService) {}
|
|
|
|
@Get("conversations")
|
|
getConversations(@Req() req: AuthenticatedRequest) {
|
|
return this.messagesService.getConversations(req.user.sub);
|
|
}
|
|
|
|
@Get("unread-count")
|
|
getUnreadCount(@Req() req: AuthenticatedRequest) {
|
|
return this.messagesService.getUnreadCount(req.user.sub);
|
|
}
|
|
|
|
@Get("conversations/with/:userId")
|
|
getConversationWithUser(
|
|
@Req() req: AuthenticatedRequest,
|
|
@Param("userId") targetUserId: string,
|
|
) {
|
|
return this.messagesService.getConversationWithUser(
|
|
req.user.sub,
|
|
targetUserId,
|
|
);
|
|
}
|
|
|
|
@Get("conversations/:id")
|
|
getMessages(
|
|
@Req() req: AuthenticatedRequest,
|
|
@Param("id") conversationId: string,
|
|
) {
|
|
return this.messagesService.getMessages(req.user.sub, conversationId);
|
|
}
|
|
|
|
@Post()
|
|
sendMessage(@Req() req: AuthenticatedRequest, @Body() dto: CreateMessageDto) {
|
|
return this.messagesService.sendMessage(req.user.sub, dto);
|
|
}
|
|
}
|