feat: add API for fetching direct conversation with a user
- Added `GET /messages/conversations/with/:userId` endpoint in the backend to retrieve direct conversation data. - Implemented corresponding method in `MessagesService` and `MessagesRepository`. - Updated the frontend service to support fetching direct conversations via API.
This commit is contained in:
@@ -42,6 +42,13 @@ export class MessagesService {
|
||||
return this.messagesRepository.findAllConversations(userId);
|
||||
}
|
||||
|
||||
async getConversationWithUser(userId: string, targetUserId: string) {
|
||||
return this.messagesRepository.findConversationBetweenUsers(
|
||||
userId,
|
||||
targetUserId,
|
||||
);
|
||||
}
|
||||
|
||||
async getMessages(userId: string, conversationId: string) {
|
||||
const isParticipant = await this.messagesRepository.isParticipant(
|
||||
conversationId,
|
||||
@@ -51,6 +58,20 @@ export class MessagesService {
|
||||
throw new ForbiddenException("You are not part of this conversation");
|
||||
}
|
||||
|
||||
// Marquer comme lus
|
||||
await this.messagesRepository.markAsRead(conversationId, userId);
|
||||
|
||||
return this.messagesRepository.findMessagesByConversationId(conversationId);
|
||||
}
|
||||
|
||||
async markAsRead(userId: string, conversationId: string) {
|
||||
const isParticipant = await this.messagesRepository.isParticipant(
|
||||
conversationId,
|
||||
userId,
|
||||
);
|
||||
if (!isParticipant) {
|
||||
throw new ForbiddenException("You are not part of this conversation");
|
||||
}
|
||||
return this.messagesRepository.markAsRead(conversationId, userId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user