feature[TW19319]: Create REST call get the team workflows by release
Change-Id: Ifdef7d087b2a931ae0ffab3364dbc0e06aee7ad4
Signed-off-by: Molaro (US), Stephen J <stephen.j.molaro@boeing.com>
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/AtsTeamWfEndpointApi.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/AtsTeamWfEndpointApi.java
index d4e56e4..b5066e4 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/AtsTeamWfEndpointApi.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/AtsTeamWfEndpointApi.java
@@ -26,6 +26,7 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.UserId;
import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
@@ -64,6 +65,11 @@
@Produces({MediaType.APPLICATION_JSON})
List<IAtsGoal> getGoals(@PathParam("id") String id);
+ @GET
+ @Path("release/{release}")
+ @Produces(MediaType.APPLICATION_JSON)
+ Collection<ArtifactToken> getWfByRelease(@PathParam("release") String releaseName);
+
@PUT
@Path("build/{build}")
@Consumes(MediaType.APPLICATION_JSON)
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTeamWfEndpointTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTeamWfEndpointTest.java
index 97eef1e..8cabed1 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTeamWfEndpointTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/AtsTeamWfEndpointTest.java
@@ -57,6 +57,24 @@
}
@Test
+ public void testGetWfByRelease() {
+ IAtsChangeSet changes = atsApi.getStoreService().createAtsChangeSet(
+ getClass().getSimpleName() + " - Create Release Artifact", AtsCoreUsers.SYSTEM_USER);
+ ArtifactToken release = changes.createArtifact(AtsArtifactTypes.ReleaseArtifact, "G123456.0");
+ changes.relate(codeTeamWorkFlow.getArtifactId(), AtsRelationTypes.TeamWorkflowToRelease_Release, release);
+ changes.execute();
+
+ Collection<ArtifactToken> workflows = teamWfEp.getWfByRelease("G123456.0");
+ Assert.assertTrue(workflows.contains(codeTeamWorkFlow));
+
+ changes = atsApi.getStoreService().createAtsChangeSet(getClass().getSimpleName() + " - Cleanup Releases",
+ AtsCoreUsers.SYSTEM_USER);
+ changes.unrelate(codeTeamWorkFlow.getArtifactId(), AtsRelationTypes.TeamWorkflowToRelease_Release, release);
+ changes.deleteArtifact(release);
+ changes.execute();
+ }
+
+ @Test
public void testRelateReleaseToWorkflow() {
String changeId = "IO98293838";
List<String> changeIds = new ArrayList<>();
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsTeamWfEndpointImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsTeamWfEndpointImpl.java
index 28301d8..5070ef7 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsTeamWfEndpointImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/workitem/AtsTeamWfEndpointImpl.java
@@ -43,6 +43,7 @@
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Lib;
/**
@@ -167,6 +168,20 @@
}
@Override
+ public Collection<ArtifactToken> getWfByRelease(String releaseName) {
+ Collection<ArtifactToken> releases =
+ atsApi.getQueryService().createQuery(AtsArtifactTypes.ReleaseArtifact).andName(releaseName).getArtifacts();
+ if (releases.size() > 1) {
+ throw new OseeCoreException("Release Name [%s] matches multiple releases", releaseName);
+ } else if (releases.isEmpty()) {
+ throw new OseeCoreException("No Releases found with name [%s]", releaseName);
+ }
+ ArtifactToken release = releases.iterator().next();
+ IRelationResolver relationResolver = atsApi.getRelationResolver();
+ return relationResolver.getRelated(release, AtsRelationTypes.TeamWorkflowToRelease_TeamWorkflow);
+ }
+
+ @Override
public XResultData relateReleaseToWorkflow(String build, UserId userId, List<String> changeIds) {
XResultData rd = new XResultData();
try {
@@ -203,11 +218,11 @@
atsApi.getQueryService().createQuery(AtsArtifactTypes.ReleaseArtifact).andName(build).getArtifacts();
if (isBuildValid) {
if (release.size() > 1) {
- rd.errorf("%s has multiple releases", build);
+ rd.errorf("Release Name [%s] matches multiple releases", build);
return rd;
}
if (release.isEmpty()) {
- rd.errorf("%s has no elements", build);
+ rd.errorf("No Releases found with name [%s]", build);
return rd;
}
IRelationResolver relationResolver = atsApi.getRelationResolver();