WIP LTI adding unsupported service response - refs BT#13469

pull/2731/head
Angel Fernando Quiroz Campos 7 years ago
parent efdd5ded9b
commit 2527e87f87
  1. 8
      plugin/ims_lti/src/ImsLtiServiceRequestFactory.php
  2. 2
      plugin/ims_lti/src/ImsLtiServiceResponseFactory.php
  3. 2
      plugin/ims_lti/src/ImsLtiServiceResponseStatus.php
  4. 31
      plugin/ims_lti/src/ImsLtiServiceUnsupportedRequest.php
  5. 28
      plugin/ims_lti/src/ImsLtiServiceUnsupportedResponse.php

@ -16,13 +16,19 @@ class ImsLtiServiceRequestFactory
$bodyChildren = $xml->imsx_POXBody->children();
if (!empty($bodyChildren)) {
switch ($bodyChildren->getName()) {
$name = $bodyChildren->getName();
switch ($name) {
case 'replaceResultRequest':
return new ImsLtiServiceReplaceRequest($xml);
case 'readResultRequest':
return new ImsLtiServiceReadRequest($xml);
case 'deleteResultRequest':
return new ImsLtiServiceDeleteRequest($xml);
default:
$name = str_replace(['ResultRequest', 'Request'], '', $name);
return new ImsLtiServiceUnsupportedRequest($xml, $name);
}
}

@ -22,6 +22,8 @@ class ImsLtiServiceResponseFactory
return new ImsLtiServiceReadResponse($statusInfo, $bodyParam);
case ImsLtiServiceResponse::TYPE_DELETE:
return new ImsLtiServiceDeleteResponse($statusInfo, $bodyParam);
default:
return new ImsLtiServiceUnsupportedResponse($statusInfo, $type);
}
return null;

@ -13,7 +13,7 @@ class ImsLtiServiceResponseStatus
const CODEMAJOR_SUCCESS = 'success';
const CODEMAJOR_PROCESSING = 'processing';
const CODEMAJOR_FAILURE = 'failure';
const CODEMAJOR_UNSUPPORTED = 'supported';
const CODEMAJOR_UNSUPPORTED = 'unsupported';
/**
* @var string

@ -0,0 +1,31 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Class ImsLtiServiceUnsupportedRequest.
*/
class ImsLtiServiceUnsupportedRequest extends ImsLtiServiceRequest
{
/**
* ImsLtiDeleteServiceRequest constructor.
*
* @param SimpleXMLElement $xml
* @param string $name
*/
public function __construct(SimpleXMLElement $xml, $name)
{
parent::__construct($xml);
$this->responseType = $name;
}
protected function processBody()
{
$this->statusInfo
->setSeverity(ImsLtiServiceResponseStatus::SEVERITY_STATUS)
->setCodeMajor(ImsLtiServiceResponseStatus::CODEMAJOR_UNSUPPORTED)
->setDescription(
$this->responseType.' is not supported'
);
}
}

@ -0,0 +1,28 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Class ImsLtiServiceUnsupportedResponse.
*/
class ImsLtiServiceUnsupportedResponse extends ImsLtiServiceResponse
{
/**
* ImsLtiServiceUnsupportedResponse constructor.
*
* @param ImsLtiServiceResponseStatus $statusInfo
* @param string $type
*/
public function __construct(ImsLtiServiceResponseStatus $statusInfo, $type)
{
$statusInfo->setOperationRefIdentifier($type);
parent::__construct($statusInfo);
}
/**
* @param SimpleXMLElement $xmlBody
*/
protected function generateBody(SimpleXMLElement $xmlBody)
{
}
}
Loading…
Cancel
Save