diff options
3 files changed, 31 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java index e494bc88543..1312c77ea6c 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java @@ -13,6 +13,7 @@ package org.eclipse.osee.disposition.rest; import java.util.Collection; import java.util.HashMap; import java.util.List; +import org.eclipse.osee.disposition.model.CiItemData; import org.eclipse.osee.disposition.model.CiSetData; import org.eclipse.osee.disposition.model.CopySetParams; import org.eclipse.osee.disposition.model.Discrepancy; @@ -103,4 +104,6 @@ public interface DispoApi { String getDispoItemId(BranchId branch, String setId, String item); List<CiSetData> getAllCiSets(); + + String createDispoItem(BranchId branch, CiItemData data, String userName); } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java index c1f54ac8c51..bae6ffda17a 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.eclipse.osee.disposition.model.CiItemData; import org.eclipse.osee.disposition.model.CiSetData; import org.eclipse.osee.disposition.model.CopySetParams; import org.eclipse.osee.disposition.model.Discrepancy; @@ -777,4 +778,25 @@ public class DispoApiImpl implements DispoApi { return wasUpdated; } + @Override + public String createDispoItem(BranchId branch, CiItemData data, String userName) { + DispoItemData dispoItemData = new DispoItemData(); + dispoItemData.setName(data.getScriptName()); + dispoItemData.setAssignee(getQuery().findUnassignedUser().getName()); + dispoItemData.setGuid(dataFactory.getNewId()); + dispoItemData.setCreationDate(new Date()); + dispoItemData.setDiscrepanciesAsRanges(data.getTestPoints().getFail()); + dispoItemData.setDiscrepanciesList(new HashMap<String, Discrepancy>()); + dispoItemData.setAnnotationsList(data.getAnnotations()); + List<DispoItem> newItem = new ArrayList<>(); + newItem.add(dispoItemData); + + ArtifactReadable author = getQuery().findUser(); + DispoSet parentSet = getQuery().findDispoSetsById(branch, data.getSetData().getDispoSetId()); + if (parentSet != null) { + getWriter().createDispoItems(author, branch, parentSet, newItem); + } + return dispoItemData.getGuid(); + } + } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/ContinuousIntegrationResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/ContinuousIntegrationResource.java index 9f643b74a67..852ef7bdbb4 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/ContinuousIntegrationResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/ContinuousIntegrationResource.java @@ -31,6 +31,7 @@ import org.eclipse.osee.disposition.model.DispoItemData; import org.eclipse.osee.disposition.rest.DispoApi; import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.core.data.BranchId; +import org.eclipse.osee.framework.jdk.core.util.Strings; /** * @author Megumi Telles @@ -89,7 +90,11 @@ public class ContinuousIntegrationResource { if (data != null) { BranchId branch = BranchId.valueOf(data.getSetData().getBranchId()); String itemId = dispoApi.getDispoItemId(branch, data.getSetData().getDispoSetId(), data.getScriptName()); - if (itemId != null && !itemId.isEmpty()) { + if (Strings.isInValid(itemId)) { + dispoApi.createDispoItem(branch, data, userName); + itemId = dispoApi.getDispoItemId(branch, data.getSetData().getDispoSetId(), data.getScriptName()); + } + if (Strings.isValid(itemId)) { updateDiscrepencies(data, branch, itemId, userName); dispoApi.deleteAllDispoAnnotation(branch, itemId, userName, true); response = createAndUpdateAnnotation(data, userName, response, branch, itemId); |