ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
AssessmentControl.php
Go to the documentation of this file.
1 <?php
2 
20 
22 
31 {
35  public static string $SCOPE = 'https://purl.imsglobal.org/spec/lti-ap/scope/control.all';
36 
43 
49  public function __construct(\ILIAS\LTI\ToolProvider\ResourceLink $resourceLink, string $endpoint)
50  {
51  parent::__construct($resourceLink->getPlatform(), $endpoint);
52  $this->resourceLink = $resourceLink;
53  $this->scope = self::$SCOPE;
54  $this->mediaType = 'application/vnd.ims.lti-ap.v1.control+json';
55  }
56 
64 // public function submitAction($assessmentControlAction, $user, $attemptNumber)
65  public function submitAction(\ILIAS\LTI\ToolProvider\AssessmentControlAction $assessmentControlAction, \ILIAS\LTI\ToolProvider\User $user, int $attemptNumber)
66  {
67  $status = false;
68  $json = array(
69  'user' => array('iss' => $this->resourceLink->getPlatform()->platformId, 'sub' => $user->ltiUserId),
70  'resource_link' => array('id' => $this->resourceLink->ltiResourceLinkId),
71  'attempt_number' => $attemptNumber,
72  'action' => $assessmentControlAction->getAction(),
73 // 'incident_time' => $assessmentControlAction->getDate()->format('Y-m-d\TH:i:s\Z'), //UK:changed
74  'incident_time' => date(('Y-m-d\TH:i:s\Z'), $assessmentControlAction->getDate()),
75  'incident_severity' => $assessmentControlAction->getSeverity()
76  );
77  if (!empty($assessmentControlAction->extraTime)) {
78  $json['extra_time'] = $assessmentControlAction->extraTime;
79  }
80  if (!empty($assessmentControlAction->code)) {
81  $json['reason_code'] = $assessmentControlAction->code;
82  }
83  if (!empty($assessmentControlAction->message)) {
84  $json['reason_msg'] = $assessmentControlAction->message;
85  }
86  $data = json_encode($json);
87  $http = $this->send('POST', null, $data);
88  if ($http->ok) {
89  $http->ok = !empty($http->responseJson->status);
90  if ($http->ok) {
91  $status = $http->responseJson->status;
92  }
93  }
94 
95  return $status;
96  }
97 }
Class to represent an assessment control action.
Class to implement a service.
Definition: Service.php:33
Class to represent a platform user.
Definition: User.php:30
Class ChatMainBarProvider .
string $endpoint
Service endpoint.
Definition: Service.php:47
send(string $method, array $parameters=array(), string $body=null)
Send a service request.
Definition: Service.php:130
HTTPMessage $http
HttpMessage object for last service request.
Definition: Service.php:75
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: AccessToken.php:19
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
submitAction(\ILIAS\LTI\ToolProvider\AssessmentControlAction $assessmentControlAction, \ILIAS\LTI\ToolProvider\User $user, int $attemptNumber)
Submit an assessment control action.
__construct(Container $dic, ilPlugin $plugin)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class to implement the Assessment Control service.
ILIAS LTI ToolProvider ResourceLink $resourceLink
Resource link for this service request.
__construct(\ILIAS\LTI\ToolProvider\ResourceLink $resourceLink, string $endpoint)
Class constructor.