From 9c685058e6282d1478f67969268b180e87aea6dc Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Mon, 3 Feb 2025 14:09:52 -0600 Subject: [PATCH] Radio buttons have an extra level to get to the numeric value. --- .../SlackPulseResponseConverter.java | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/server/src/main/java/com/objectcomputing/checkins/services/pulseresponse/SlackPulseResponseConverter.java b/server/src/main/java/com/objectcomputing/checkins/services/pulseresponse/SlackPulseResponseConverter.java index 9ddadce57..f2fe86cb6 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/pulseresponse/SlackPulseResponseConverter.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/pulseresponse/SlackPulseResponseConverter.java @@ -49,16 +49,24 @@ public PulseResponseCreateDTO get( response.setTeamMemberId(lookupUser(memberProfileServices, map)); response.setSubmissionDate(LocalDate.now()); + // Internal Score + Map internalBlock = + (Map)values.get("internalNumber"); response.setInternalScore(Integer.parseInt(getMappedValue( - values, "internalNumber", "internalScore", true))); + internalBlock, "internalScore", "selected_option", true))); + // Internal Feelings response.setInternalFeelings(getMappedValue( values, "internaltext", "internalFeelings", false)); - String score = getMappedValue(values, "externalScore", - "externalScore", false); - if (!score.isEmpty()) { + // External Score + Map externalBlock = + (Map)values.get("externalNumber"); + String score = getMappedValue(externalBlock, "externalScore", + "selected_option", false); + if (score != null && !score.isEmpty()) { response.setExternalScore(Integer.parseInt(score)); } + // External Feelings response.setExternalFeelings(getMappedValue( values, "externalText", "externalFeelings", false)); @@ -72,32 +80,25 @@ public PulseResponseCreateDTO get( } } - private String getMappedValue(Map map, String blockId, - String key, boolean required) { - if (!map.containsKey(blockId)) { - if (required) { - throw new BadArgException( - String.format("Block ID - %s was not found", blockId)); - } else { - return ""; - } - } - Map blockMap = (Map)map.get(blockId); - + private String getMappedValue(Map map, String key1, + String key2, boolean required) { final String valueKey = "value"; - if (blockMap.containsKey(key)) { - final Map other = - (Map)blockMap.get(key); - if (other.containsKey(valueKey)) { - return (String)other.get(valueKey); + if (map.containsKey(key1)) { + Map firstMap = (Map)map.get(key1); + if (firstMap.containsKey(key2)) { + final Map secondMap = + (Map)firstMap.get(key2); + if (secondMap.containsKey(valueKey)) { + return (String)secondMap.get(valueKey); + } } } if (required) { - LOG.error("Expected {}.{}.{} was not found", blockId, key, valueKey); + LOG.error("Expected {}.{}.{} was not found", key1, key2, valueKey); throw new BadArgException( String.format("Expected %s.%s.%s was not found", - blockId, key, valueKey)); + key1, key2, valueKey)); } else { return ""; }