Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
namespace Packback\Lti1p3\MessageValidators;
4
 
5
use Packback\Lti1p3\LtiConstants;
6
use Packback\Lti1p3\LtiException;
7
 
8
class DeepLinkMessageValidator extends AbstractMessageValidator
9
{
10
    public static function getMessageType(): string
11
    {
12
        return LtiConstants::MESSAGE_TYPE_DEEPLINK;
13
    }
14
 
15
    /**
16
     * @throws LtiException
17
     */
18
    public static function validate(array $jwtBody): void
19
    {
20
        static::validateGenericMessage($jwtBody);
21
 
22
        if (empty($jwtBody[LtiConstants::DL_DEEP_LINK_SETTINGS])) {
23
            throw new LtiException('Missing Deep Linking Settings');
24
        }
25
        $deep_link_settings = $jwtBody[LtiConstants::DL_DEEP_LINK_SETTINGS];
26
        if (empty($deep_link_settings['deep_link_return_url'])) {
27
            throw new LtiException('Missing Deep Linking Return URL');
28
        }
29
        if (empty($deep_link_settings['accept_types']) || !in_array('ltiResourceLink', $deep_link_settings['accept_types'])) {
30
            throw new LtiException('Must support resource link placement types');
31
        }
32
        if (empty($deep_link_settings['accept_presentation_document_targets'])) {
33
            throw new LtiException('Must support a presentation type');
34
        }
35
    }
36
}