Merge remote-tracking branch 'origin/dev-1.4' into development

This commit is contained in:
anhefti 2022-08-16 12:47:34 +02:00
commit fdc778fc0b
5 changed files with 47 additions and 22 deletions

View file

@ -18,7 +18,7 @@
<packaging>jar</packaging>
<properties>
<sebserver-version>1.4.0-SNAPSHOT</sebserver-version>
<sebserver-version>1.4.1-SNAPSHOT</sebserver-version>
<build-version>${sebserver-version}</build-version>
<revision>${sebserver-version}</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View file

@ -202,7 +202,7 @@ public class LmsAPITemplateAdapter implements LmsAPITemplate {
throw new RuntimeException("No course API Access: " + testCourseAccessAPI);
}
return testCourseAccessAPI;
});
}).getOrThrow();
}
@Override

View file

@ -92,25 +92,25 @@ public class MockCourseAccessAPI implements CourseAccessAPI {
null,
"http://lms.mockup.com/api/"));
if (webserviceInfo.hasProfile("dev")) {
for (int i = 12; i < 50; i++) {
this.mockups.add(new QuizData(
"quiz10" + i, institutionId, lmsSetupId, lmsType, "Demo Quiz 10 " + i + " (MOCKUP)",
i + "_Starts in a minute and ends after five minutes",
DateTime.now(DateTimeZone.UTC).plus(Constants.MINUTE_IN_MILLIS)
.toString(Constants.DEFAULT_DATE_TIME_FORMAT),
DateTime.now(DateTimeZone.UTC).plus(6 * Constants.MINUTE_IN_MILLIS)
.toString(Constants.DEFAULT_DATE_TIME_FORMAT),
"http://lms.mockup.com/api/"));
this.mockups.add(new QuizData(
"quiz11" + i, institutionId, lmsSetupId, lmsType, "Demo Quiz 11 " + i + " (MOCKUP)",
i + "_Starts in a minute and ends never",
DateTime.now(DateTimeZone.UTC).plus(Constants.MINUTE_IN_MILLIS)
.toString(Constants.DEFAULT_DATE_TIME_FORMAT),
null,
"http://lms.mockup.com/api/"));
}
}
// if (webserviceInfo.hasProfile("dev")) {
// for (int i = 12; i < 50; i++) {
// this.mockups.add(new QuizData(
// "quiz10" + i, institutionId, lmsSetupId, lmsType, "Demo Quiz 10 " + i + " (MOCKUP)",
// i + "_Starts in a minute and ends after five minutes",
// DateTime.now(DateTimeZone.UTC).plus(Constants.MINUTE_IN_MILLIS)
// .toString(Constants.DEFAULT_DATE_TIME_FORMAT),
// DateTime.now(DateTimeZone.UTC).plus(6 * Constants.MINUTE_IN_MILLIS)
// .toString(Constants.DEFAULT_DATE_TIME_FORMAT),
// "http://lms.mockup.com/api/"));
// this.mockups.add(new QuizData(
// "quiz11" + i, institutionId, lmsSetupId, lmsType, "Demo Quiz 11 " + i + " (MOCKUP)",
// i + "_Starts in a minute and ends never",
// DateTime.now(DateTimeZone.UTC).plus(Constants.MINUTE_IN_MILLIS)
// .toString(Constants.DEFAULT_DATE_TIME_FORMAT),
// null,
// "http://lms.mockup.com/api/"));
// }
// }
}
@Override

View file

@ -137,7 +137,7 @@ public class MoodleRestTemplateFactory {
log.warn("Failed to get access token for LMS: {}({})",
lmsSetup.name,
lmsSetup.id,
result.getError());
result.getError().getMessage());
}
return result;
})

View file

@ -88,6 +88,31 @@ class ExamUpdateHandler {
final Set<String> failedOrMissing = new HashSet<>(exams.keySet());
final String updateId = this.createUpdateId();
// test overall LMS access
try {
this.lmsAPIService
.getLmsAPITemplate(lmsSetupId)
.getOrThrow()
.checkCourseAPIAccess();
} catch (final Exception e) {
log.warn("No LMS access, mark all exams of the LMS as not connected to LMS");
if (!failedOrMissing.isEmpty()) {
failedOrMissing
.stream()
.forEach(quizId -> {
try {
final Exam exam = exams.get(quizId);
if (exam.lmsAvailable == null || exam.isLmsAvailable()) {
this.examDAO.markLMSAvailability(quizId, false, updateId);
}
} catch (final Exception ee) {
log.error("Failed to mark exam: {} as not connected to LMS", quizId, ee);
}
});
}
return failedOrMissing;
}
this.lmsAPIService
.getLmsAPITemplate(lmsSetupId)
.map(template -> {