From ae0b3fb9344e0ad6bcb8022af0e1c561b22165bc Mon Sep 17 00:00:00 2001 From: Martin Lowe Date: Tue, 21 Jun 2022 14:13:01 -0400 Subject: [PATCH] Iss. #65 - Fix error caused by no project match in validation req --- .../git/eca/helper/CommitHelper.java | 15 ++++++++++++++- .../service/impl/DefaultValidationService.java | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java b/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java index 6bd207e..06124d3 100644 --- a/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java +++ b/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java @@ -15,6 +15,7 @@ import java.util.stream.Collectors; import javax.ws.rs.core.MultivaluedMap; import org.eclipsefoundation.git.eca.model.Commit; +import org.eclipsefoundation.git.eca.model.Project; import org.eclipsefoundation.git.eca.model.ValidationRequest; import org.eclipsefoundation.git.eca.namespace.GitEcaParameterNames; import org.jboss.resteasy.specimpl.MultivaluedMapImpl; @@ -63,10 +64,22 @@ public class CommitHelper { public static MultivaluedMap getCommitParams(List commitShas, String projectId, String repoUrl) { MultivaluedMap params = new MultivaluedMapImpl<>(); params.put(GitEcaParameterNames.SHAS_RAW, commitShas); - params.add(GitEcaParameterNames.PROJECT_ID_RAW, projectId); params.add(GitEcaParameterNames.REPO_URL_RAW, repoUrl); + if (projectId != null) { + params.add(GitEcaParameterNames.PROJECT_ID_RAW, projectId); + } return params; } + + /** + * Centralized way of retrieving a checked project ID from a project for use when interacting with commits and commit data. + * + * @param p the current project to attempt to retrieve an ID from + * @return the project ID or the given default (empty string). + */ + public static String getProjectId(Project p) { + return p != null ? p.getProjectId() : ""; + } private CommitHelper() { } diff --git a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java index cf11741..230bc2e 100644 --- a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java +++ b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java @@ -71,7 +71,7 @@ public class DefaultValidationService implements ValidationService { List statuses, Project p) { // remove existing messaging RDBMSQuery q = new RDBMSQuery<>(wrapper, filters.get(CommitValidationMessage.class), - CommitHelper.getCommitParams(req, p != null ? p.getProjectId() : null)); + CommitHelper.getCommitParams(req, CommitHelper.getProjectId(p))); List messages = new ArrayList<>(); List updatedStatuses = new ArrayList<>(); @@ -88,7 +88,7 @@ public class DefaultValidationService implements ValidationService { base = status.get(); } else { base = new CommitValidationStatus(); - base.setProject(p != null ? p.getProjectId() : null); + base.setProject(CommitHelper.getProjectId(p)); base.setCommitHash(e.getKey()); base.setProvider(req.getProvider()); base.setRepoUrl(req.getRepoUrl().toString()); -- GitLab