Skip to content

Commit 9c68505

Browse files
committed
Radio buttons have an extra level to get to the numeric value.
1 parent c937472 commit 9c68505

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

server/src/main/java/com/objectcomputing/checkins/services/pulseresponse/SlackPulseResponseConverter.java

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,24 @@ public PulseResponseCreateDTO get(
4949
response.setTeamMemberId(lookupUser(memberProfileServices, map));
5050
response.setSubmissionDate(LocalDate.now());
5151

52+
// Internal Score
53+
Map<String, Object> internalBlock =
54+
(Map<String, Object>)values.get("internalNumber");
5255
response.setInternalScore(Integer.parseInt(getMappedValue(
53-
values, "internalNumber", "internalScore", true)));
56+
internalBlock, "internalScore", "selected_option", true)));
57+
// Internal Feelings
5458
response.setInternalFeelings(getMappedValue(
5559
values, "internaltext", "internalFeelings", false));
5660

57-
String score = getMappedValue(values, "externalScore",
58-
"externalScore", false);
59-
if (!score.isEmpty()) {
61+
// External Score
62+
Map<String, Object> externalBlock =
63+
(Map<String, Object>)values.get("externalNumber");
64+
String score = getMappedValue(externalBlock, "externalScore",
65+
"selected_option", false);
66+
if (score != null && !score.isEmpty()) {
6067
response.setExternalScore(Integer.parseInt(score));
6168
}
69+
// External Feelings
6270
response.setExternalFeelings(getMappedValue(
6371
values, "externalText", "externalFeelings", false));
6472

@@ -72,32 +80,25 @@ public PulseResponseCreateDTO get(
7280
}
7381
}
7482

75-
private String getMappedValue(Map<String, Object> map, String blockId,
76-
String key, boolean required) {
77-
if (!map.containsKey(blockId)) {
78-
if (required) {
79-
throw new BadArgException(
80-
String.format("Block ID - %s was not found", blockId));
81-
} else {
82-
return "";
83-
}
84-
}
85-
Map<String, Object> blockMap = (Map<String, Object>)map.get(blockId);
86-
83+
private String getMappedValue(Map<String, Object> map, String key1,
84+
String key2, boolean required) {
8785
final String valueKey = "value";
88-
if (blockMap.containsKey(key)) {
89-
final Map<String, Object> other =
90-
(Map<String, Object>)blockMap.get(key);
91-
if (other.containsKey(valueKey)) {
92-
return (String)other.get(valueKey);
86+
if (map.containsKey(key1)) {
87+
Map<String, Object> firstMap = (Map<String, Object>)map.get(key1);
88+
if (firstMap.containsKey(key2)) {
89+
final Map<String, Object> secondMap =
90+
(Map<String, Object>)firstMap.get(key2);
91+
if (secondMap.containsKey(valueKey)) {
92+
return (String)secondMap.get(valueKey);
93+
}
9394
}
9495
}
9596

9697
if (required) {
97-
LOG.error("Expected {}.{}.{} was not found", blockId, key, valueKey);
98+
LOG.error("Expected {}.{}.{} was not found", key1, key2, valueKey);
9899
throw new BadArgException(
99100
String.format("Expected %s.%s.%s was not found",
100-
blockId, key, valueKey));
101+
key1, key2, valueKey));
101102
} else {
102103
return "";
103104
}

0 commit comments

Comments
 (0)