From 55ff9d61290cbd59c49fd5712752585676029b31 Mon Sep 17 00:00:00 2001 From: Dinh Nguyen Pham Date: Tue, 17 Dec 2024 11:45:43 -0800 Subject: [PATCH 1/2] adding helper function for fixing empty object in HR records load --- .../processor/PcdHRRecordsApiResponseProcessor.java | 5 ++++- src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java b/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java index 6e7b086d..008ae85d 100644 --- a/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java +++ b/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java @@ -21,6 +21,7 @@ import ca.bc.gov.chefs.etl.forms.pcd.hrRecords.model.HRRecordsSubmission; import ca.bc.gov.chefs.etl.util.CSVUtil; import ca.bc.gov.chefs.etl.util.FileUtil; +import ca.bc.gov.chefs.etl.util.JsonUtil; public class PcdHRRecordsApiResponseProcessor extends BaseApiResponseProcessor { @@ -32,7 +33,9 @@ public void process(Exchange exchange) throws Exception { String payload = exchange.getIn().getBody(String.class); ObjectMapper mapper = new ObjectMapper(); - List hrRecordsModels = mapper.readValue(payload, new TypeReference>() { + String fixedPayload = JsonUtil.fixPcnNameObject(payload); + + List hrRecordsModels = mapper.readValue(fixedPayload, new TypeReference>() { }); List parsedhrRecords = parseHRRecordsRequest(hrRecordsModels); diff --git a/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java b/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java index cbdb9bc5..8a89e258 100644 --- a/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java +++ b/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java @@ -133,6 +133,16 @@ public static String fixPcnName(String payload) { return result; } + public static String fixPcnNameObject(String payload) { + // The following code aims to replace occurrences of "pcnName":"{}" with "pcnName": "", as "pcnName" is + // expected to be a String and not an object + String pcnPattern = "\"pcnName\":\\{\\}"; + String pcnReplacement = "\"pcnName\": \"\""; + + String result = payload.replaceAll(pcnPattern, pcnReplacement); + return result; + } + /** * Does some basic cleanup/conversion of common Unicode characters which aren't allowed in the * target ASCII database. From 682ff1874a4b808d63520e89a789cc455f7240c0 Mon Sep 17 00:00:00 2001 From: Dinh Nguyen Pham Date: Tue, 17 Dec 2024 11:56:09 -0800 Subject: [PATCH 2/2] reusing payload name and returning the calculation instead of the result assignment --- .../hrRecords/processor/PcdHRRecordsApiResponseProcessor.java | 4 ++-- src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java b/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java index 008ae85d..4ff2d254 100644 --- a/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java +++ b/src/main/java/ca/bc/gov/chefs/etl/forms/pcd/hrRecords/processor/PcdHRRecordsApiResponseProcessor.java @@ -33,9 +33,9 @@ public void process(Exchange exchange) throws Exception { String payload = exchange.getIn().getBody(String.class); ObjectMapper mapper = new ObjectMapper(); - String fixedPayload = JsonUtil.fixPcnNameObject(payload); + payload = JsonUtil.fixPcnNameObject(payload); - List hrRecordsModels = mapper.readValue(fixedPayload, new TypeReference>() { + List hrRecordsModels = mapper.readValue(payload, new TypeReference>() { }); List parsedhrRecords = parseHRRecordsRequest(hrRecordsModels); diff --git a/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java b/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java index 8a89e258..1bde48b5 100644 --- a/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java +++ b/src/main/java/ca/bc/gov/chefs/etl/util/JsonUtil.java @@ -139,8 +139,7 @@ public static String fixPcnNameObject(String payload) { String pcnPattern = "\"pcnName\":\\{\\}"; String pcnReplacement = "\"pcnName\": \"\""; - String result = payload.replaceAll(pcnPattern, pcnReplacement); - return result; + return payload.replaceAll(pcnPattern, pcnReplacement); } /**