From 58b54112324b38a5d67612b325c58ad5de510619 Mon Sep 17 00:00:00 2001
From: Martin Lowe <martin.lowe@eclipse-foundation.org>
Date: Tue, 13 Aug 2024 12:52:40 -0400
Subject: [PATCH] Iss #157 - Add email obfuscation to the status json return

Resolves #157
---
 .../eca/config/EclipseQuteTemplateExtensions.java   |  2 +-
 .../git/eca/resource/StatusResource.java            | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/eclipsefoundation/git/eca/config/EclipseQuteTemplateExtensions.java b/src/main/java/org/eclipsefoundation/git/eca/config/EclipseQuteTemplateExtensions.java
index af3e3c85..0413b424 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/config/EclipseQuteTemplateExtensions.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/config/EclipseQuteTemplateExtensions.java
@@ -80,7 +80,7 @@ public class EclipseQuteTemplateExtensions {
      * @param email the address to obfuscate
      * @return the obfuscated address, or empty string if (the string could not be parsed as an email address.
      */
-    static String obfuscateEmail(String email) {
+    public static String obfuscateEmail(String email) {
         if (StringUtils.isBlank(email)) {
             return "";
         }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/resource/StatusResource.java b/src/main/java/org/eclipsefoundation/git/eca/resource/StatusResource.java
index 8fe1a05f..0a95623e 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/resource/StatusResource.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/resource/StatusResource.java
@@ -15,6 +15,7 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.eclipsefoundation.efservices.api.models.Project;
+import org.eclipsefoundation.git.eca.config.EclipseQuteTemplateExtensions;
 import org.eclipsefoundation.git.eca.dto.CommitValidationStatus;
 import org.eclipsefoundation.git.eca.helper.GithubValidationHelper;
 import org.eclipsefoundation.git.eca.helper.ProjectHelper;
@@ -86,7 +87,17 @@ public class StatusResource extends CommonResource {
     @GET
     @Path("{fingerprint}")
     public Response getCommitValidation(@PathParam("fingerprint") String fingerprint) {
-        return Response.ok(validationStatus.getHistoricValidationStatus(wrapper, fingerprint)).build();
+        List<CommitValidationStatus> statuses = validationStatus.getHistoricValidationStatus(wrapper, fingerprint);
+        // for each of the statuses, obfuscate the emails before return
+        statuses.forEach(s -> {
+            s.setUserMail(EclipseQuteTemplateExtensions.obfuscateEmail(s.getUserMail()));
+            s.getErrors().stream().forEach(e -> {
+                e.setAuthorEmail(EclipseQuteTemplateExtensions.obfuscateEmail(e.getAuthorEmail()));
+                e.setCommitterEmail(EclipseQuteTemplateExtensions.obfuscateEmail(e.getCommitterEmail()));
+            });
+        });
+
+        return Response.ok(statuses).build();
     }
 
     /**
-- 
GitLab