|
|
@@ -523,13 +523,29 @@ public class DefaultExamSprintReportApplicationService implements ExamSprintRepo
|
|
|
}
|
|
|
|
|
|
private void validateOutlookPayload(JsonNode payload) {
|
|
|
+ long startedNanos = System.nanoTime();
|
|
|
validateOutlookStudentNameFields(payload);
|
|
|
+ long studentNameDurationMs = elapsedMillis(startedNanos);
|
|
|
validateOutlookPayloadShape(payload);
|
|
|
+ long shapeDurationMs = elapsedMillis(startedNanos) - studentNameDurationMs;
|
|
|
OutlookExamSprintReportPayload reportPayload = readPayload(
|
|
|
outlookPayloadForValidation(payload),
|
|
|
OutlookExamSprintReportPayload.class,
|
|
|
OUTLOOK_REPORT_NAME);
|
|
|
+ long deserializationDurationMs = elapsedMillis(startedNanos) - studentNameDurationMs - shapeDurationMs;
|
|
|
validatePayload(reportPayload, OUTLOOK_REPORT_NAME, this::toOutlookFieldPath);
|
|
|
+ long beanValidationDurationMs = elapsedMillis(startedNanos)
|
|
|
+ - studentNameDurationMs
|
|
|
+ - shapeDurationMs
|
|
|
+ - deserializationDurationMs;
|
|
|
+ log.info(
|
|
|
+ "exam_sprint_report_validation_stage_completed reportType={} stage=validate_payload durationMs={} studentNameDurationMs={} shapeDurationMs={} deserializationDurationMs={} beanValidationDurationMs={}",
|
|
|
+ ReportType.OUTLOOK,
|
|
|
+ elapsedMillis(startedNanos),
|
|
|
+ studentNameDurationMs,
|
|
|
+ shapeDurationMs,
|
|
|
+ deserializationDurationMs,
|
|
|
+ beanValidationDurationMs);
|
|
|
}
|
|
|
|
|
|
private void validateOutlookStudentNameFields(JsonNode payload) {
|