From 0947e70fc018b8ecfce453c6c2b3a61ddcf732a6 Mon Sep 17 00:00:00 2001 From: Doris Lam Date: Sun, 6 Nov 2022 19:51:40 -0800 Subject: [PATCH 1/2] set returned elements _refId to reflect request --- .../mms/crud/services/NodeGetHelper.java | 13 ++++++- .../mms/crud/services/NodeOperation.java | 6 +++ example/crud.postman_collection.json | 39 +++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/crud/src/main/java/org/openmbee/mms/crud/services/NodeGetHelper.java b/crud/src/main/java/org/openmbee/mms/crud/services/NodeGetHelper.java index 8e1d3e777..bd410b082 100644 --- a/crud/src/main/java/org/openmbee/mms/crud/services/NodeGetHelper.java +++ b/crud/src/main/java/org/openmbee/mms/crud/services/NodeGetHelper.java @@ -4,6 +4,8 @@ import java.util.*; import java.util.stream.Collectors; + +import org.openmbee.mms.core.config.ContextHolder; import org.openmbee.mms.core.objects.Rejection; import org.openmbee.mms.core.services.NodeGetInfo; import org.openmbee.mms.core.exceptions.BadRequestException; @@ -100,7 +102,7 @@ private NodeGetInfo processCommit(NodeGetInfo info, String commitId, NodeService } Instant modified = Instant.from(formatter.parse(indexElement.getModified())); Instant created = Instant.from(formatter.parse(indexElement.getCreated())); - + indexElement.setRefId(ContextHolder.getContext().getBranchId()); if (commitId.equals(indexElement.getCommitId())) { //exact match info.getActiveElementMap().put(nodeId, indexElement); } else if (created.isAfter(time)) { // element created after commit @@ -108,6 +110,7 @@ private NodeGetInfo processCommit(NodeGetInfo info, String commitId, NodeService } else if (modified.isAfter(time)) { // latest element is after commit Optional tryExact = nodeIndex.getByCommitId(commitId, nodeId); if (tryExact.isPresent()) { + tryExact.get().setRefId(ContextHolder.getContext().getBranchId()); info.getActiveElementMap().put(nodeId, tryExact.get()); continue; // found exact match at commit } @@ -118,6 +121,7 @@ private NodeGetInfo processCommit(NodeGetInfo info, String commitId, NodeService formatter.format(time), refCommitIds); if (e.isPresent()) { // found version of element at commit time //TODO determine if element was deleted at the time? + e.get().setRefId(ContextHolder.getContext().getBranchId()); info.getActiveElementMap().put(nodeId, e.get()); } else { rejectNotFound(info, nodeId); // element not found at commit time @@ -150,7 +154,12 @@ public List processGetAll() { for (Node node : existingNodes) { indexIds.add(node.getDocId()); } - return nodeIndex.findAllById(indexIds); + List els = nodeIndex.findAllById(indexIds); + String ref = ContextHolder.getContext().getBranchId(); + for (ElementJson el: els) { + el.setRefId(ref); + } + return els; } public List processGetAll(String commitId, NodeService service) { diff --git a/crud/src/main/java/org/openmbee/mms/crud/services/NodeOperation.java b/crud/src/main/java/org/openmbee/mms/crud/services/NodeOperation.java index fe41caa25..0a0d69b59 100644 --- a/crud/src/main/java/org/openmbee/mms/crud/services/NodeOperation.java +++ b/crud/src/main/java/org/openmbee/mms/crud/services/NodeOperation.java @@ -12,6 +12,7 @@ import java.util.Set; import java.util.UUID; +import org.openmbee.mms.core.config.ContextHolder; import org.openmbee.mms.core.objects.Rejection; import org.openmbee.mms.core.services.NodeChangeInfo; import org.openmbee.mms.core.services.NodeGetInfo; @@ -90,6 +91,11 @@ public NodeChangeInfo initInfoFromNodes(List existingNodes, CommitJson cmj } // bulk read existing elements in elastic List existingElements = nodeIndex.findAllById(indexIds); + // set the _refId of the element json to be the ref it's 'found/requested' in, + String ref = ContextHolder.getContext().getBranchId(); + for (ElementJson e: existingElements) { + e.setRefId(ref); + } Map existingElementMap = convertJsonToMap(existingElements); Instant now = Instant.now(); diff --git a/example/crud.postman_collection.json b/example/crud.postman_collection.json index 0fa48976b..6cd1f98f8 100644 --- a/example/crud.postman_collection.json +++ b/example/crud.postman_collection.json @@ -1074,6 +1074,7 @@ " var jsonData = pm.response.json();", " jsonData.elements.forEach(function(e) {", " pm.expect(e._inRefIds).to.include('refa');", + " pm.expect(e._refId).to.equal('refa');", " })", "});" ], @@ -1100,6 +1101,44 @@ }, "response": [] }, + { + "name": "check response element _refId matches request", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"return element in new ref have right _refId\", function () {", + " var jsonData = pm.response.json();", + " jsonData.elements.forEach(function(e) {", + " pm.expect(e._refId).to.equal('refa');", + " })", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{host}}/projects/aa/refs/refa/elements/x", + "host": [ + "{{host}}" + ], + "path": [ + "projects", + "aa", + "refs", + "refa", + "elements", + "x" + ] + } + }, + "response": [] + }, { "name": "update x and y on refa", "event": [ From 40ee3e79b08ac46949c04fbd5a454dcbee054adb Mon Sep 17 00:00:00 2001 From: Doris Lam Date: Mon, 7 Nov 2022 10:13:23 -0800 Subject: [PATCH 2/2] bump for release --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 08d176e97..2badcd87e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=4.0.13 +version=4.0.14 group=org.openmbee.mms springBootVersion=2.6.7