ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
Handler.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
25use ILIAS\Export\ExportHandler\I\PublicAccess\HandlerInterface as ilExportHandlerPublicAccessInterface;
26use ILIAS\Export\ExportHandler\I\PublicAccess\Link\FactoryInterface as ilExportHandlerPublicAccessLinkFactoryInterface;
27use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Element\FactoryInterface as ilExportHandlerPublicAccessRepositoryElementFactoryInterface;
28use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\HandlerInterface as ilExportHandlerPublicAccessRepositoryInterface;
29use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Key\FactoryInterface as ilExportHandlerPublicAccessRepositoryKeyFactoryInterface;
30use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Values\FactoryInterface as ilExportHandlerPublicAccessRepositoryValuesFactoryInterface;
31
32class Handler implements ilExportHandlerPublicAccessInterface
33{
34 protected ilExportHandlerPublicAccessRepositoryInterface $public_access_repository;
35 protected ilExportHandlerPublicAccessRepositoryElementFactoryInterface $public_access_repository_element_factory;
36 protected ilExportHandlerPublicAccessRepositoryKeyFactoryInterface $public_access_repository_key_factory;
37 protected ilExportHandlerPublicAccessRepositoryValuesFactoryInterface $public_access_repository_values_factory;
38 protected ilExportHandlerPublicAccessLinkFactoryInterface $public_access_link_factory;
39
40 public function __construct(
41 ilExportHandlerPublicAccessRepositoryInterface $public_access_repository,
42 ilExportHandlerPublicAccessRepositoryElementFactoryInterface $public_access_repository_element_factory,
43 ilExportHandlerPublicAccessRepositoryKeyFactoryInterface $public_access_repository_key_factory,
44 ilExportHandlerPublicAccessLinkFactoryInterface $public_access_link_factory,
45 ilExportHandlerPublicAccessRepositoryValuesFactoryInterface $public_access_repository_values_factory
46 ) {
47 $this->public_access_repository = $public_access_repository;
48 $this->public_access_repository_element_factory = $public_access_repository_element_factory;
49 $this->public_access_repository_key_factory = $public_access_repository_key_factory;
50 $this->public_access_link_factory = $public_access_link_factory;
51 $this->public_access_repository_values_factory = $public_access_repository_values_factory;
52 }
53
54 public function setPublicAccessFile(
55 ObjectId $object_id,
56 string $export_option_id,
57 string $file_identifier
58 ): void {
59 $key = $this->public_access_repository_key_factory->handler()
60 ->withObjectId($object_id);
61 $values = $this->public_access_repository_values_factory->handler()
62 ->withIdentification($file_identifier)
63 ->withExportOptionId($export_option_id);
64 $element = $this->public_access_repository_element_factory->handler()
65 ->withKey($key)
66 ->withValues($values);
67 $this->public_access_repository->storeElement($element);
68 }
69
70 public function hasPublicAccessFile(
71 ObjectId $object_id
72 ): bool {
73 $key = $this->public_access_repository_key_factory->handler()
74 ->withObjectId($object_id);
75 return $this->public_access_repository->hasElement($key);
76 }
77
79 ObjectId $object_id
80 ): string {
81 $key = $this->public_access_repository_key_factory->handler()
82 ->withObjectId($object_id);
83 $element = $this->public_access_repository->getElement($key);
84 return is_null($element) ? "" : $element->getValues()->getIdentification();
85 }
86
88 ObjectId $object_id
89 ): string {
90 $key = $this->public_access_repository_key_factory->handler()
91 ->withObjectId($object_id);
92 $element = $this->public_access_repository->getElement($key);
93 return is_null($element) ? "" : $element->getValues()->getExportOptionId();
94 }
95
97 ReferenceId $reference_id
98 ): string {
99 return (string) $this->public_access_link_factory->handler()->withReferenceId($reference_id)->getLink();
100 }
101
102 public function removePublicAccessFile(
103 ObjectId $object_id
104 ): void {
105 $key = $this->public_access_repository_key_factory->handler()
106 ->withObjectId($object_id);
107 $key_collection = $this->public_access_repository_key_factory->collection()
108 ->withElement($key);
109 $this->public_access_repository->deleteElements($key_collection);
110 }
111}
ilExportHandlerPublicAccessRepositoryElementFactoryInterface $public_access_repository_element_factory
Definition: Handler.php:35
ilExportHandlerPublicAccessRepositoryValuesFactoryInterface $public_access_repository_values_factory
Definition: Handler.php:37
setPublicAccessFile(ObjectId $object_id, string $export_option_id, string $file_identifier)
Definition: Handler.php:54
ilExportHandlerPublicAccessRepositoryKeyFactoryInterface $public_access_repository_key_factory
Definition: Handler.php:36
downloadLinkOfPublicAccessFile(ReferenceId $reference_id)
Definition: Handler.php:96
__construct(ilExportHandlerPublicAccessRepositoryInterface $public_access_repository, ilExportHandlerPublicAccessRepositoryElementFactoryInterface $public_access_repository_element_factory, ilExportHandlerPublicAccessRepositoryKeyFactoryInterface $public_access_repository_key_factory, ilExportHandlerPublicAccessLinkFactoryInterface $public_access_link_factory, ilExportHandlerPublicAccessRepositoryValuesFactoryInterface $public_access_repository_values_factory)
Definition: Handler.php:40
ilExportHandlerPublicAccessRepositoryInterface $public_access_repository
Definition: Handler.php:34
getPublicAccessFileExportOptionId(ObjectId $object_id)
Definition: Handler.php:87
getPublicAccessFileIdentifier(ObjectId $object_id)
Definition: Handler.php:78
ilExportHandlerPublicAccessLinkFactoryInterface $public_access_link_factory
Definition: Handler.php:38
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...