From 017f3fb1dfec0a39773ab17eb9cc547ffe46aa81 Mon Sep 17 00:00:00 2001 From: Mitch Miller Date: Thu, 3 Aug 2023 18:24:59 -0400 Subject: [PATCH] added 'success' to each results node of a job object --- .../src/main/java/gsrs/imports/ImportUtilities.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gsrs-spring-boot-autoconfigure/src/main/java/gsrs/imports/ImportUtilities.java b/gsrs-spring-boot-autoconfigure/src/main/java/gsrs/imports/ImportUtilities.java index c7240f55..d609b26e 100644 --- a/gsrs-spring-boot-autoconfigure/src/main/java/gsrs/imports/ImportUtilities.java +++ b/gsrs-spring-boot-autoconfigure/src/main/java/gsrs/imports/ImportUtilities.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.BooleanNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; import gov.nih.ncats.common.util.CachedSupplier; @@ -259,6 +260,7 @@ public JsonNode handleActionsAsync(StagingAreaService stagingAreaService, ArrayNode[] returnFromInnerLambda = new ArrayNode[1]; executor.execute(()-> { ArrayNode returnNodes = JsonNodeFactory.instance.arrayNode(); + BooleanNode successNode= JsonNodeFactory.instance.booleanNode(true); for (int r = 0; r < configSet.getStagingAreaRecords().size(); r++) { String stagingAreaId = configSet.getStagingAreaRecords().get(r).getId(); String databaseRecordId = configSet.getStagingAreaRecords().get(r).getMatchingID(); @@ -270,12 +272,18 @@ public JsonNode handleActionsAsync(StagingAreaService stagingAreaService, log.trace("about to call runnable to call processOneRecord"); adminService.runAs(auth, runnable); log.trace("got back singleReturn {}", singleReturn[0].toPrettyString()); + if(singleReturn[0].get("message")!=null && singleReturn[0].get("message").textValue().startsWith("Error:")) { + singleReturn[0].put("success", false); + }else { + singleReturn[0].put("success", true); + } } catch (Exception e) { log.error("error during import processing: ", e); singleReturn[0] = JsonNodeFactory.instance.objectNode(); singleReturn[0].put("id", stagingAreaId); singleReturn[0].put("status", "INTERNAL_SERVER_ERROR"); singleReturn[0].put("message", "error: " + e.getMessage()); + singleReturn[0].put("success", false); } int finalishRecord = r+1; TransactionTemplate transactionTemplateUpdateCount = new TransactionTemplate(transactionManager); @@ -285,6 +293,7 @@ public JsonNode handleActionsAsync(StagingAreaService stagingAreaService, log.trace("appending node to returnNodes"); } returnFromInnerLambda[0] =returnNodes; + //now synchronize all records -- tidy up relationships and other entity-entity links if(needToSave(configSet.getProcessingActions())){ log.trace("going to synchronize entities");