Skip to content

Commit d65f927

Browse files
authored
Merge pull request #55 from Crown-Commercial-Service/feature/NCAS-1017
Added missing column 'option'
2 parents 11aa63f + 5696545 commit d65f927

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

src/main/java/uk/gov/ccs/entity/DefaultQuestions.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,9 @@ public class DefaultQuestions {
107107

108108
@Column(name = "event_type")
109109
String eventType;
110+
111+
@Type(JsonType.class)
112+
@Column(name = "options", columnDefinition = "jsonb")
113+
String options;
110114
}
111115

src/main/java/uk/gov/ccs/mapper/DataTemplateToDefaultQuestionsMapper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Collections;
1313
import java.util.List;
1414
import java.util.Objects;
15+
import java.util.Optional;
1516
import java.util.stream.Collectors;
1617

1718
/**
@@ -99,6 +100,7 @@ private DefaultQuestions buildDefaultQuestion(
99100
String lotId, String eventType, Timestamp now) {
100101

101102
try {
103+
102104
Requirement.OCDS ocds = requirement.getOcds();
103105
Requirement.NonOCDS nonOCDS = requirement.getNonOCDS();
104106
RequirementGroup.OCDS groupOcds = requirementGroup.getOcds();
@@ -143,6 +145,11 @@ private DefaultQuestions buildDefaultQuestion(
143145
}
144146
}
145147

148+
List<Requirement.Option> options = Optional.of(requirement)
149+
.map(Requirement::getNonOCDS)
150+
.map(Requirement.NonOCDS::getOptions)
151+
.orElse(Collections.emptyList());
152+
146153
DefaultQuestions.DefaultQuestionsBuilder builder = DefaultQuestions.builder()
147154
.agreementId(agreementId)
148155
.lotId(lotId)
@@ -171,7 +178,8 @@ private DefaultQuestions buildDefaultQuestion(
171178
.templateName(dt.getTemplateName())
172179
.templateMandatory(dt.getMandatory())
173180
.templateParent(dt.getParent()) // parent only available in DOS6
174-
.eventType(eventType);
181+
.eventType(eventType)
182+
.options(objectMapper.writeValueAsString(options));
175183

176184
return builder.build();
177185

src/main/java/uk/gov/ccs/mapper/DefaultQuestionsToDataTemplateMapper.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package uk.gov.ccs.mapper;
22

33
import com.fasterxml.jackson.core.type.TypeReference;
4+
import org.apache.commons.lang3.StringUtils;
45
import org.springframework.stereotype.Component;
56
import uk.gov.ccs.entity.DefaultQuestions;
67
import uk.gov.ccs.model.agreements.*;
78

9+
import java.lang.reflect.Type;
810
import java.util.*;
911
import java.util.stream.Collectors;
1012

@@ -140,7 +142,20 @@ private Requirement buildRequirement(DefaultQuestions question) {
140142
.maxValue(null) // Not available in default_questions table
141143
.period(null) // Not available in default_questions table
142144
.build();
143-
145+
146+
List<Requirement.Option> options = null;
147+
148+
if(StringUtils.isNotEmpty(question.getOptions())) {
149+
try {
150+
options = objectMapper.readValue(question.getOptions(),
151+
new TypeReference<>() {
152+
});
153+
} catch (Exception ex) {
154+
log.error("Error parsing question options. error {}", ex.getMessage());
155+
rollbar.warning("Error parsing question options: " + ex.getMessage());
156+
}
157+
}
158+
144159
// Build nonOCDS part
145160
Requirement.NonOCDS.NonOCDSBuilder nonOCDSBuilder = Requirement.NonOCDS.builder()
146161
.order(question.getQuestionOrder())
@@ -152,7 +167,7 @@ private Requirement buildRequirement(DefaultQuestions question) {
152167
.inheritance(null) // Not available in default_questions table
153168
.inheritsFrom(null) // Not available in default_questions table
154169
.timelineDependency(null) // Not available in default_questions table
155-
.options(null); // Not available in default_questions table (answers stored separately)
170+
.options(options);
156171

157172
// Parse dependency if exists
158173
Dependency dependency = null;

src/main/java/uk/gov/ccs/model/agreements/Requirement.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,13 @@ public static class OCDS {
145145
@Data
146146
@Builder
147147
@Jacksonized
148+
@JsonInclude(JsonInclude.Include.NON_NULL)
148149
public static class Option {
149150

150151
String value;
151152
Boolean select;
152153
String text;
153154
TableDefinition tableDefinition;
155+
Boolean selected;
154156
}
155157
}

0 commit comments

Comments
 (0)