diff --git a/src/app/modules/admin/pages/page-tableau/page-tableau.component.html b/src/app/modules/admin/pages/page-tableau/page-tableau.component.html
index 2e1e456..7a84f23 100644
--- a/src/app/modules/admin/pages/page-tableau/page-tableau.component.html
+++ b/src/app/modules/admin/pages/page-tableau/page-tableau.component.html
@@ -1,4 +1,4 @@
-
+
Id |
@@ -14,16 +14,16 @@
-
- {{products.product_id}} |
- {{products.product_name}} |
- {{products.product_price}} |
- {{products.product_qty}} |
- {{products.product_instock}} |
- {{products.product_breadcrumb_label}} |
- {{products.product_rating}} |
+
+ {{products.id}} |
+ {{products.name}} |
+ {{products.price}} |
+ {{products.quantity}} |
+ {{products.instock}} |
+
+ {{products.rating}} |
|
- |
+ |
diff --git a/src/app/modules/admin/pages/page-tableau/page-tableau.component.ts b/src/app/modules/admin/pages/page-tableau/page-tableau.component.ts
index 35af785..04fdef6 100644
--- a/src/app/modules/admin/pages/page-tableau/page-tableau.component.ts
+++ b/src/app/modules/admin/pages/page-tableau/page-tableau.component.ts
@@ -1,4 +1,6 @@
import { Component, OnInit } from '@angular/core';
+import { Subject } from 'rxjs';
+import { Plant } from '../../models/plant';
import { AdminService } from '../../services/admin.service';
@Component({
@@ -8,15 +10,22 @@ import { AdminService } from '../../services/admin.service';
})
export class PageTableauComponent implements OnInit {
public listData!: any[];
- constructor(private adminService: AdminService) { }
+ public subCollection$: Subject;
+
+ constructor(private adminService: AdminService) {
+ this.subCollection$ = this.adminService.subCollection$;
+ this.adminService.refreshCollection();
+
+ this.adminService.subCollection$.subscribe((data: Plant[]) => console.log("après mapping", data))
+ }
ngOnInit(): void {
- this.listData = [];
- this.adminService.getData().subscribe(
- (listPlant: any[]) => {
- this.listData = listPlant;
- this.listData.length = 9;
- })
+ // this.listData = [];
+ // this.adminService.getData().subscribe(
+ // (listPlant: any[]) => {
+ // this.listData = listPlant;
+ // this.listData.length = 9;
+ // })
}
onClickDelete(id: number){
diff --git a/src/app/modules/admin/services/admin.service.ts b/src/app/modules/admin/services/admin.service.ts
index 04e441f..994bb74 100644
--- a/src/app/modules/admin/services/admin.service.ts
+++ b/src/app/modules/admin/services/admin.service.ts
@@ -1,6 +1,6 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-import { Observable } from 'rxjs';
+import { map, Observable, Subject } from 'rxjs';
import { environment } from 'src/environments/environment';
import { Plant } from '../models/plant';
@@ -8,17 +8,39 @@ import { Plant } from '../models/plant';
providedIn: 'root',
})
export class AdminService {
+ public collection$!: Observable;
+ public subCollection$ = new Subject();
apiUrl: string;
+ public plantCollection!: Plant[];
constructor(private httpClient: HttpClient) {
this.apiUrl = environment.apiUrl;
+ this.collection$ = this.httpClient.get(`${this.apiUrl}/list_products`).pipe(
+ // Ici on modifie l'objet que transporte notre Observable grâce à l'opérateur map()
+ map((tabObj: any[]) => {
+ //console.log("avant mapping: ", tabObj);
+ // Ici grâce à la méthode .map() on transforme tout les objet json du tableau en instance de notre classe Plant()
+ return tabObj.map((obj: any) => {
+ return new Plant(obj.product_name, obj.product_price,obj.product_quantity,obj.product_instock,obj.product_breadcrumb_label,obj.product_image_source,obj.product_rating,obj.id);
+ })
+ }));
+ //this.collection$ = this.httpClient.get(`${this.apiUrl}/list_products`);
+ //console.log(this.collection$);
}
- getData(): Observable {
- return this.httpClient.get(`${this.apiUrl}/list_products`);
+ public refreshCollection(): void {
+ // On se sert de notre flux de donnée type observable froid
+ this.collection$.subscribe((listPlant: Plant[]) => {
+ this.plantCollection = [...listPlant];
+ // Utiliser un observable chaud (subject) pour nexter nos données recues de notre observable froid
+ this.subCollection$.next(listPlant);
+ })
}
addPlant(plant: Plant): Observable | void {
return this.httpClient.post(`${this.apiUrl}`, plant);
}
+ // getData(): Observable {
+ // return this.httpClient.get(`${this.apiUrl}/list_products`);
+ // }
}