score_given = $grade['scoreGiven'] ?? null; $this->score_maximum = $grade['scoreMaximum'] ?? null; $this->comment = $grade['comment'] ?? null; $this->activity_progress = $grade['activityProgress'] ?? null; $this->grading_progress = $grade['gradingProgress'] ?? null; $this->timestamp = $grade['timestamp'] ?? null; $this->user_id = $grade['userId'] ?? null; $this->submission_review = $grade['submissionReview'] ?? null; $this->canvas_extension = $grade['https://canvas.instructure.com/lti/submission'] ?? null; } public function getArray(): array { return [ 'scoreGiven' => $this->score_given, 'scoreMaximum' => $this->score_maximum, 'comment' => $this->comment, 'activityProgress' => $this->activity_progress, 'gradingProgress' => $this->grading_progress, 'timestamp' => $this->timestamp, 'userId' => $this->user_id, 'submissionReview' => $this->submission_review, 'https://canvas.instructure.com/lti/submission' => $this->canvas_extension, ]; } /** * Static function to allow for method chaining without having to assign to a variable first. */ public static function new(): self { return new LtiGrade(); } public function getScoreGiven() { return $this->score_given; } public function setScoreGiven($value): self { $this->score_given = $value; return $this; } public function getScoreMaximum() { return $this->score_maximum; } public function setScoreMaximum($value): self { $this->score_maximum = $value; return $this; } public function getComment() { return $this->comment; } public function setComment($comment): self { $this->comment = $comment; return $this; } public function getActivityProgress() { return $this->activity_progress; } public function setActivityProgress($value): self { $this->activity_progress = $value; return $this; } public function getGradingProgress() { return $this->grading_progress; } public function setGradingProgress($value): self { $this->grading_progress = $value; return $this; } public function getTimestamp() { return $this->timestamp; } public function setTimestamp($value): self { $this->timestamp = $value; return $this; } public function getUserId() { return $this->user_id; } public function setUserId($value): self { $this->user_id = $value; return $this; } public function getSubmissionReview() { return $this->submission_review; } public function setSubmissionReview($value): self { $this->submission_review = $value; return $this; } public function getCanvasExtension() { return $this->canvas_extension; } /** * Add custom extensions for Canvas. * * Disclaimer: You should only set this if your LMS is Canvas. * Some LMS (e.g. Schoology) include validation logic that will throw if there * is unexpected data. And, the type of LMS cannot simply be inferred by their URL. * * @see https://documentation.instructure.com/doc/api/score.html */ public function setCanvasExtension($value): self { $this->canvas_extension = $value; return $this; } }