24 public static $SCOPE =
'https://purl.imsglobal.org/spec/lti-ap/scope/control.all';
31 private $resourceLink =
null;
41 parent::__construct($resourceLink->getPlatform(),
$endpoint);
42 $this->resourceLink = $resourceLink;
44 $this->mediaType =
'application/vnd.ims.lti-ap.v1.control+json';
56 public function submitAction($assessmentControlAction, $user, $attemptNumber)
60 'user' => array(
'iss' => $this->resourceLink->getPlatform()->platformId,
'sub' => $user->ltiUserId),
61 'resource_link' => array(
'id' => $this->resourceLink->ltiResourceLinkId),
62 'attempt_number' => $attemptNumber,
63 'action' => $assessmentControlAction->getAction(),
64 'incident_time' => $assessmentControlAction->getDate()->format(
'Y-m-d\TH:i:s\Z'),
65 'incident_severity' => $assessmentControlAction->getSeverity()
67 if (!empty($assessmentControlAction->extraTime)) {
68 $json[
'extra_time'] = $assessmentControlAction->extraTime;
70 if (!empty($assessmentControlAction->code)) {
71 $json[
'reason_code'] = $assessmentControlAction->code;
73 if (!empty($assessmentControlAction->message)) {
74 $json[
'reason_msg'] = $assessmentControlAction->message;
76 $data = json_encode($json);
77 $http = $this->
send(
'POST',
null, $data);
79 $http->ok = !empty($http->responseJson->status);
81 $status = $http->responseJson->status;
Class to represent an assessment control action.
Class to represent a platform resource link.
Class to implement the Assessment Control service.
__construct($resourceLink, $endpoint)
Class constructor.
static $SCOPE
Access scope.
submitAction($assessmentControlAction, $user, $attemptNumber)
Submit an assessment control action.
Class to implement a service.
send($method, $parameters=array(), $body=null)
Send a service request.
$endpoint
Service endpoint.
Class to represent a platform user.