From d01ad9532ba9d50ae1ebf26443f242ce8636dbd0 Mon Sep 17 00:00:00 2001
From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com>
Date: Tue, 27 Apr 2021 11:37:53 +0200
Subject: [PATCH 1/2] feat: add count on newsletter and change button

---
 .../newsletter-users/newsletter-users.component.html       | 1 +
 .../newsletter-users/newsletter-users.component.ts         | 7 +++++++
 src/app/admin/components/panel/panel.component.html        | 3 +--
 src/app/admin/services/admin.service.ts                    | 4 ++++
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.html b/src/app/admin/components/newsletter-users/newsletter-users.component.html
index 8a82446d7..d89d280e1 100644
--- a/src/app/admin/components/newsletter-users/newsletter-users.component.html
+++ b/src/app/admin/components/newsletter-users/newsletter-users.component.html
@@ -3,6 +3,7 @@
   <div fxLayout="row">
     <button (click)="copySubscription()">Copier les adresses dans le presse papier</button>
   </div>
+  <div fxLayout="row">Il y a actuellement {{ subscriptionsCount }} abonnés à la newsletter.</div>
   <div fxLayout="row">
     <input #searchstring (keyup)="(0)" />
     <button (click)="searchSubscribedEmail(searchstring.value)">Rechercher</button>
diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.ts b/src/app/admin/components/newsletter-users/newsletter-users.component.ts
index 66290faae..6eab37d75 100644
--- a/src/app/admin/components/newsletter-users/newsletter-users.component.ts
+++ b/src/app/admin/components/newsletter-users/newsletter-users.component.ts
@@ -10,9 +10,16 @@ export class NewsletterUsersComponent {
   public subscriptions: NewsletterSubscription[];
   public deleteModalOpenned = false;
   public emailToUnsubscribe: string = null;
+  public subscriptionsCount: number = 0;
 
   constructor(private adminService: AdminService) {}
 
+  ngOnInit(): void {
+    this.adminService.countNewsletterSubscriptions().subscribe((count) => {
+      this.subscriptionsCount = count;
+    });
+  }
+
   public toggleUnsubscribeModal(emailToUnsubscribe: string): void {
     this.emailToUnsubscribe = emailToUnsubscribe;
     this.deleteModalOpenned = !this.deleteModalOpenned;
diff --git a/src/app/admin/components/panel/panel.component.html b/src/app/admin/components/panel/panel.component.html
index 1ee88741e..c92281381 100644
--- a/src/app/admin/components/panel/panel.component.html
+++ b/src/app/admin/components/panel/panel.component.html
@@ -3,7 +3,7 @@
   <div fxLayout="row" fxLayoutGap="20px" fxLayoutAlign="center center">
     <button (click)="changeActiveFeature(features.pendingStructures)">Gestion structure</button>
     <button (click)="changeActiveFeature(features.deleteUsers)">Suppression d'utilisateurs</button>
-    <button (click)="changeActiveFeature(features.newsletterUsers)">Désabonnement newsletter</button>
+    <button (click)="changeActiveFeature(features.newsletterUsers)">Newsletter</button>
     <a target="_blank" class="custom-link" rel="noopener noreferrer" [href]="ghostLink">Ghost</a>
   </div>
   <div *ngIf="selectedFeature === features.deleteUsers">
@@ -15,5 +15,4 @@
   <div *ngIf="selectedFeature === features.newsletterUsers">
     <app-admin-newsletter-users></app-admin-newsletter-users>
   </div>
-  
 </div>
diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts
index d71c89ef9..7e50a6509 100644
--- a/src/app/admin/services/admin.service.ts
+++ b/src/app/admin/services/admin.service.ts
@@ -33,6 +33,10 @@ export class AdminService {
     return this.http.post<NewsletterSubscription[]>(`api/admin/searchNewsletterSubscriptions`, { searchString });
   }
 
+  public countNewsletterSubscriptions(): Observable<number> {
+    return this.http.get<number>(`api/admin/countNewsletterSubscriptions`);
+  }
+
   public unsubscribeEmail(email: string): Observable<string> {
     return this.http.delete<string>(`api/admin/newsletterSubscription/` + email);
   }
-- 
GitLab


From 16146f2aabf39c28edf42e062328d8bf6bbbb5fa Mon Sep 17 00:00:00 2001
From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com>
Date: Thu, 29 Apr 2021 14:21:06 +0200
Subject: [PATCH 2/2] fix: changes after review

---
 .../newsletter-users/newsletter-users.component.ts     |  1 +
 src/app/admin/services/admin.service.ts                | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.ts b/src/app/admin/components/newsletter-users/newsletter-users.component.ts
index 6eab37d75..2b8675165 100644
--- a/src/app/admin/components/newsletter-users/newsletter-users.component.ts
+++ b/src/app/admin/components/newsletter-users/newsletter-users.component.ts
@@ -36,6 +36,7 @@ export class NewsletterUsersComponent {
     if (shouldUnsubscribe) {
       this.adminService.unsubscribeEmail(email).subscribe((data) => {
         this.subscriptions = this.subscriptions.filter((obj) => obj.email !== email);
+        this.subscriptionsCount = this.subscriptions.length;
       });
     }
   }
diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts
index 7e50a6509..85b41d252 100644
--- a/src/app/admin/services/admin.service.ts
+++ b/src/app/admin/services/admin.service.ts
@@ -22,23 +22,23 @@ export class AdminService {
   }
 
   public searchUsers(searchString: string): Observable<User[]> {
-    return this.http.post<User[]>(`api/admin/searchUsers`, { searchString });
+    return this.http.post<User[]>(`${this.baseUrl}/searchUsers`, { searchString });
   }
 
   public deleteUser(id: string): Observable<User> {
-    return this.http.delete<User>(`api/admin/user/` + id);
+    return this.http.delete<User>(`${this.baseUrl}/user/` + id);
   }
 
   public searchNewsletterSubscriptions(searchString: string): Observable<NewsletterSubscription[]> {
-    return this.http.post<NewsletterSubscription[]>(`api/admin/searchNewsletterSubscriptions`, { searchString });
+    return this.http.post<NewsletterSubscription[]>(`${this.baseUrl}/searchNewsletterSubscriptions`, { searchString });
   }
 
   public countNewsletterSubscriptions(): Observable<number> {
-    return this.http.get<number>(`api/admin/countNewsletterSubscriptions`);
+    return this.http.get<number>(`${this.baseUrl}/countNewsletterSubscriptions`);
   }
 
   public unsubscribeEmail(email: string): Observable<string> {
-    return this.http.delete<string>(`api/admin/newsletterSubscription/` + email);
+    return this.http.delete<string>(`${this.baseUrl}/newsletterSubscription/` + email);
   }
 
   public acceptStructureClaim(
-- 
GitLab