Skip to content
Snippets Groups Projects
Select Git revision
  • 2cd25d343afa1511ce1cd76ac74777ad5f15f19e
  • main default protected
  • demo protected
  • master
  • icon-set-mapping
  • production protected
  • revert-62666d1a
  • favorites-and-recent-files
  • lit2
  • wc-part
  • mark-downloaded-files
  • feature/annotpdf-test
  • fix-zip-upload
  • config-cleanup
  • wip
  • app-shell-update
16 results

vpu-official-signature-pdf-upload.js

Blame
  • CourseItemDataProvider.php 1.13 KiB
    <?php
    
    declare(strict_types=1);
    
    namespace Dbp\Relay\CourseBundle\DataProvider;
    
    use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
    use ApiPlatform\Core\DataProvider\RestrictedDataProviderInterface;
    use Dbp\Relay\CourseBundle\API\CourseProviderInterface;
    use Dbp\Relay\CourseBundle\Entity\Course;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    
    final class CourseItemDataProvider extends AbstractController implements ItemDataProviderInterface, RestrictedDataProviderInterface
    {
        private $api;
    
        public function __construct(CourseProviderInterface $api)
        {
            $this->api = $api;
        }
    
        public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
        {
            return Course::class === $resourceClass;
        }
    
        public function getItem(string $resourceClass, $id, string $operationName = null, array $context = []): ?Course
        {
            $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
    
            $filters = $context['filters'] ?? [];
            $options = ['lang' => $filters['lang'] ?? 'de'];
    
            return $this->api->getCourseById($id, $options);
        }
    }