diff --git a/src/Outcome.php b/src/Outcome.php index d964ab7..a7964ec 100644 --- a/src/Outcome.php +++ b/src/Outcome.php @@ -86,6 +86,20 @@ class Outcome */ public ?string $comment = null; + /** + * Date submission started. + * + * @var DateTime|null $submissionStarted + */ + public ?\DateTime $submissionStarted = null; + + /** + * Date submission completed. + * + * @var DateTime|null $submissionCompleted + */ + public ?\DateTime $submissionCompleted = null; + /** * Outcome data source value. * diff --git a/src/Service/Score.php b/src/Service/Score.php index 6b68b8d..6f119ae 100644 --- a/src/Service/Score.php +++ b/src/Service/Score.php @@ -67,6 +67,15 @@ public function submit(Outcome $ltiOutcome, User $user): bool $json['scoreGiven'] = $score; $json['scoreMaximum'] = $ltiOutcome->getPointsPossible(); } + if (!empty($ltiOutcome->submissionStarted) || !empty($ltiOutcome->submissionCompleted)) { + $json['submission'] = []; + if (!empty($ltiOutcome->submissionStarted)) { + $json['submission']['startedAt'] = date_format($ltiOutcome->submissionStarted, 'Y-m-d\TH:i:s.uP'); + } + if (!empty($ltiOutcome->submissionStarted)) { + $json['submission']['submittedAt'] = date_format($ltiOutcome->submissionCompleted, 'Y-m-d\TH:i:s.uP'); + } + } $data = json_encode($json); $http = $this->send('POST', null, $data);