fixed no quiz data for exam

This commit is contained in:
anhefti 2020-08-11 17:01:29 +02:00
parent 6980715e2f
commit 9364977d4a

View file

@ -17,6 +17,7 @@ import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
@ -146,7 +147,7 @@ public class ExamDAOImpl implements ExamDAO {
} }
} }
if (from != null) { if (from != null && exam.startTime != null) {
if (exam.startTime.isBefore(from)) { if (exam.startTime.isBefore(from)) {
return false; return false;
} }
@ -773,7 +774,12 @@ public class ExamDAOImpl implements ExamDAO {
// collect Exam's // collect Exam's
return recordMapping.entrySet() return recordMapping.entrySet()
.stream() .stream()
.map(entry -> toDomainModel(entry.getValue(), quizzes.get(entry.getKey())).getOrThrow()) .map(entry -> toDomainModel(entry.getValue(), quizzes.get(entry.getKey()))
.onError(error -> log.error(
"Failed to get quiz data from remote LMS for exam: ",
error))
.getOr(null))
.filter(Objects::nonNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
}); });
} }
@ -782,6 +788,10 @@ public class ExamDAOImpl implements ExamDAO {
final ExamRecord record, final ExamRecord record,
final QuizData quizData) { final QuizData quizData) {
if (quizData == null) {
return Result.ofRuntimeError("No quizData found for exam: " + record);
}
return Result.tryCatch(() -> { return Result.tryCatch(() -> {
final Collection<String> supporter = (StringUtils.isNotBlank(record.getSupporter())) final Collection<String> supporter = (StringUtils.isNotBlank(record.getSupporter()))
@ -801,11 +811,11 @@ public class ExamDAOImpl implements ExamDAO {
record.getInstitutionId(), record.getInstitutionId(),
record.getLmsSetupId(), record.getLmsSetupId(),
record.getExternalId(), record.getExternalId(),
(quizData != null) ? quizData.name : Constants.EMPTY_NOTE, quizData.name,
(quizData != null) ? quizData.description : Constants.EMPTY_NOTE, quizData.description,
(quizData != null) ? quizData.startTime : null, quizData.startTime,
(quizData != null) ? quizData.endTime : null, quizData.endTime,
(quizData != null) ? quizData.startURL : Constants.EMPTY_NOTE, quizData.startURL,
ExamType.valueOf(record.getType()), ExamType.valueOf(record.getType()),
record.getOwner(), record.getOwner(),
supporter, supporter,