From 37fcd4daee309698b6a2555f9b4df684e01ae7df Mon Sep 17 00:00:00 2001 From: Andy Hubert <andy.hubert@gmail.com> Date: Wed, 1 Aug 2018 04:57:29 -0400 Subject: [PATCH] fix: Ensures statement duration isn't null (Thanks @AndyHubert). (#209) --- src/transformer/utils/get_attempt_duration.php | 9 +++++---- src/transformer/utils/get_attempt_result.php | 9 +++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/transformer/utils/get_attempt_duration.php b/src/transformer/utils/get_attempt_duration.php index 366241c..55b1fe9 100644 --- a/src/transformer/utils/get_attempt_duration.php +++ b/src/transformer/utils/get_attempt_duration.php @@ -18,10 +18,11 @@ namespace src\transformer\utils; defined('MOODLE_INTERNAL') || die(); function get_attempt_duration($attempt) { - if (isset($attempt->timefinish)) { + if (isset($attempt->timefinish) && isset($attempt->timestart)) { $seconds = $attempt->timefinish - $attempt->timestart; - return "PT".(string) $seconds."S"; - } else { - return null; + if ($seconds > 0) { + return "PT".(string) $seconds."S"; + } } + return null; } diff --git a/src/transformer/utils/get_attempt_result.php b/src/transformer/utils/get_attempt_result.php index faeec7e..08eb9c0 100644 --- a/src/transformer/utils/get_attempt_result.php +++ b/src/transformer/utils/get_attempt_result.php @@ -31,7 +31,7 @@ function get_attempt_result(array $config, $attempt, $gradeitem) { $success = $gradesum >= $passscore; $duration = get_attempt_duration($attempt); - return [ + $result = [ 'score' => [ 'raw' => $rawscore, 'min' => $minscore, @@ -40,6 +40,11 @@ function get_attempt_result(array $config, $attempt, $gradeitem) { ], 'completion' => $completed, 'success' => $success, - 'duration' => $duration, ]; + + if ($duration != null) { + $result['duration'] = $duration; + } + + return $result; } -- GitLab