From 05c625fb9c3673d6c60511958f7e051257247c2b Mon Sep 17 00:00:00 2001 From: talig Date: Mon, 25 Dec 2017 15:05:31 +0200 Subject: Refactor list revisions api Remove zusammen-api dependency in versioning-api, enhance version zusammen dao impl UT. Issue-ID: SDC-779 Change-Id: Ic792462eac52f1f5129f92ce80d3deb641c90916 Signed-off-by: talig --- .../sdcrests/item/rest/services/VersionsImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main') diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/services/VersionsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/services/VersionsImpl.java index 466734208d..c2f6c4708d 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/services/VersionsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-rest/item-rest-services/src/main/java/org/openecomp/sdcrests/item/rest/services/VersionsImpl.java @@ -41,6 +41,7 @@ import org.openecomp.sdc.versioning.ItemManager; import org.openecomp.sdc.versioning.ItemManagerFactory; import org.openecomp.sdc.versioning.VersioningManager; import org.openecomp.sdc.versioning.VersioningManagerFactory; +import org.openecomp.sdc.versioning.dao.types.Revision; import org.openecomp.sdc.versioning.dao.types.SynchronizationState; import org.openecomp.sdc.versioning.dao.types.Version; import org.openecomp.sdc.versioning.errors.RevisionIdNotFoundErrorBuilder; @@ -63,6 +64,7 @@ import org.springframework.stereotype.Service; import javax.inject.Named; import javax.ws.rs.core.Response; import java.util.HashMap; +import java.util.List; import java.util.Map; import static org.openecomp.sdc.itempermissions.notifications.NotificationConstants.PERMISSION_USER; @@ -146,8 +148,19 @@ public class VersionsImpl implements Versions { GenericCollectionWrapper results = new GenericCollectionWrapper<>(); MapRevisionToDto mapper = new MapRevisionToDto(); - versioningManager.listRevisions(itemId, new Version(versionId)) - .forEach(revision -> results.add(mapper.applyMapping(revision, RevisionDto.class))); + List revisions = versioningManager.listRevisions(itemId, new Version(versionId)); + /* When creating a new item an initial version is created with invalid data. + This revision is not an applicable revision. The logic of identifying this revision is: + 1- only the first version of item has this issue + 2- only in the first item version there are 2 revisions created + 3- the second revision is in format "Initial : " + 4- only if a revision in this format exists we remove the first revision. */ + if (revisions.size() > 1 && + revisions.get(revisions.size() - 2).getMessage().matches("Initial .*:.*")) { + revisions.remove(revisions.size() - 1); + } + + revisions.forEach(revision -> results.add(mapper.applyMapping(revision, RevisionDto.class))); return Response.ok(results).build(); } -- cgit 1.2.3-korg