HEX
Server: LiteSpeed
System: Linux server.zepintelhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: enamadmin (1026)
PHP: 8.2.30
Disabled: exec,system,passthru,shell_exec,proc_open,popen,apache_child_terminate
Upload Files
File: /home/enamadmin/public_html/aaelearningb/lib/lti1p3/src/LtiAbstractService.php
<?php

namespace Packback\Lti1p3;

use Packback\Lti1p3\Interfaces\ILtiRegistration;
use Packback\Lti1p3\Interfaces\ILtiServiceConnector;
use Packback\Lti1p3\Interfaces\IServiceRequest;

abstract class LtiAbstractService
{
    public function __construct(
        private ILtiServiceConnector $serviceConnector,
        private ILtiRegistration $registration,
        private array $serviceData
    ) {
    }

    public function getServiceData(): array
    {
        return $this->serviceData;
    }

    public function setServiceData(array $serviceData): self
    {
        $this->serviceData = $serviceData;

        return $this;
    }

    abstract public function getScope(): array;

    protected function validateScopes(array $scopes): void
    {
        if (empty(array_intersect($scopes, $this->getScope()))) {
            throw new LtiException('Missing required scope');
        }
    }

    protected function makeServiceRequest(IServiceRequest $request): array
    {
        return $this->serviceConnector->makeServiceRequest(
            $this->registration,
            $this->getScope(),
            $request,
        );
    }

    protected function getAll(IServiceRequest $request, ?string $key = null): array
    {
        return $this->serviceConnector->getAll(
            $this->registration,
            $this->getScope(),
            $request,
            $key
        );
    }
}