From a5c8a83281e9a40cdaa5205460c83b278bff7430 Mon Sep 17 00:00:00 2001 From: gokhoal Date: Wed, 10 Jun 2026 22:11:03 +0200 Subject: [PATCH] chargement des messages --- src/app/core/auth/auth.service.ts | 8 +++++++ src/app/core/chat/discussion.service.ts | 22 ++++++++++++++---- .../messages-main.component.html | 15 ++++++------ .../messages-main/messages-main.component.ts | 23 ++++++++++++++++--- 4 files changed, 52 insertions(+), 16 deletions(-) diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts index 700ed05..625a40d 100644 --- a/src/app/core/auth/auth.service.ts +++ b/src/app/core/auth/auth.service.ts @@ -99,4 +99,12 @@ export class AuthService { localStorage.setItem(this.USER_KEY, JSON.stringify(updated)); this.currentUser.set(updated); } + + getCurrentUserId(): number { + const user = this.currentUser(); + if (!user) { + throw new Error('Aucun utilisateur connecté'); + } + return Number(user.id); + } } \ No newline at end of file diff --git a/src/app/core/chat/discussion.service.ts b/src/app/core/chat/discussion.service.ts index 4c14d21..9d09b05 100644 --- a/src/app/core/chat/discussion.service.ts +++ b/src/app/core/chat/discussion.service.ts @@ -1,15 +1,27 @@ -import {Observable} from "rxjs"; -import {Discussion} from "../../pages/menu/menu-users/menu-users.component"; -import {HttpClient} from "@angular/common/http"; -import {inject, Injectable} from "@angular/core"; +import { Observable } from "rxjs"; +import { Discussion } from "../../pages/menu/menu-users/menu-users.component"; +import { HttpClient } from "@angular/common/http"; +import { inject, Injectable } from "@angular/core"; + +export interface Message { + id: number; + contenu: string; + date: string; + authorId: number; + authorName: string; +} @Injectable({ providedIn: 'root' }) export class discussionsService { private http = inject(HttpClient); - private apiUrl = 'https://localhost:5001/API'; + private apiUrl = 'https://localhost:5250/API'; getDiscussions(): Observable { return this.http.get(`${this.apiUrl}/discussions`); } + + getMessages(discussionId: string): Observable { + return this.http.get(`${this.apiUrl}/discussions/${discussionId}/messages`); + } } \ No newline at end of file diff --git a/src/app/pages/messages/messages-main/messages-main.component.html b/src/app/pages/messages/messages-main/messages-main.component.html index 51deabe..d6dae06 100644 --- a/src/app/pages/messages/messages-main/messages-main.component.html +++ b/src/app/pages/messages/messages-main/messages-main.component.html @@ -6,18 +6,17 @@
-
-

Salut, comment tu vas ?

- 15:33, Hier. -
-
-

ça va

- 11:25, Aujd. +
+

{{ message.contenu }}

+ {{ message.date | date:'HH:mm' }}
- +
diff --git a/src/app/pages/messages/messages-main/messages-main.component.ts b/src/app/pages/messages/messages-main/messages-main.component.ts index 155285f..63645b5 100644 --- a/src/app/pages/messages/messages-main/messages-main.component.ts +++ b/src/app/pages/messages/messages-main/messages-main.component.ts @@ -1,22 +1,39 @@ import { Component, inject, OnInit } from '@angular/core'; +import { CommonModule } from '@angular/common'; import { MessagesMenu } from "../messages-menu/messages-menu.component"; import { MessagesInfoUser } from "../messages-infouser/messages-infouser.component"; import { MessagesSend } from "../messages-send/messages-send.component"; import { ActivatedRoute } from '@angular/router'; +import { discussionsService, Message } from "../../../core/chat/discussion.service"; +import { AuthService } from "../../../core/auth/auth.service"; @Component({ selector: 'app-messages-main', - imports: [MessagesMenu, MessagesInfoUser, MessagesSend], + imports: [CommonModule, MessagesMenu, MessagesInfoUser, MessagesSend], templateUrl: './messages-main.component.html', styleUrl: './messages-main.component.css' }) export class MessagesMain implements OnInit { private route = inject(ActivatedRoute); + private discussionService = inject(discussionsService); + private authService = inject(AuthService); - currentdiscussionId!: string; + currentDiscussionId!: string; + currentUserId!: number; + messages: Message[] = []; ngOnInit() { - this.currentdiscussionId = this.route.snapshot.paramMap.get('discussionId')!; + this.currentDiscussionId = this.route.snapshot.paramMap.get('discussionId')!; + this.currentUserId = this.authService.getCurrentUserId(); + + this.discussionService.getMessages(this.currentDiscussionId).subscribe({ + next: (messages) => this.messages = messages, + error: (err) => console.error('Impossible de charger les messages', err) + }); + } + + isSent(message: Message): boolean { + return message.authorId === this.currentUserId; } } \ No newline at end of file