ILIAS  trunk Revision v11.0_alpha-1744-gb0451eebef4
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Handler.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
25 use ILIAS\Export\ExportHandler\I\PublicAccess\HandlerInterface as ilExportHandlerPublicAccessInterface;
26 use ILIAS\Export\ExportHandler\I\PublicAccess\Link\FactoryInterface as ilExportHandlerPublicAccessLinkFactoryInterface;
27 use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Element\FactoryInterface as ilExportHandlerPublicAccessRepositoryElementFactoryInterface;
28 use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\HandlerInterface as ilExportHandlerPublicAccessRepositoryInterface;
29 use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Key\FactoryInterface as ilExportHandlerPublicAccessRepositoryKeyFactoryInterface;
30 use ILIAS\Export\ExportHandler\I\PublicAccess\Repository\Values\FactoryInterface as ilExportHandlerPublicAccessRepositoryValuesFactoryInterface;
31 
32 class 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 }
ilExportHandlerPublicAccessRepositoryValuesFactoryInterface $public_access_repository_values_factory
Definition: Handler.php:37
getPublicAccessFileIdentifier(ObjectId $object_id)
Definition: Handler.php:78
getPublicAccessFileExportOptionId(ObjectId $object_id)
Definition: Handler.php:87
downloadLinkOfPublicAccessFile(ReferenceId $reference_id)
Definition: Handler.php:96
ilExportHandlerPublicAccessRepositoryElementFactoryInterface $public_access_repository_element_factory
Definition: Handler.php:35
ilExportHandlerPublicAccessRepositoryInterface $public_access_repository
Definition: Handler.php:34
ilExportHandlerPublicAccessRepositoryKeyFactoryInterface $public_access_repository_key_factory
Definition: Handler.php:36
__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
setPublicAccessFile(ObjectId $object_id, string $export_option_id, string $file_identifier)
Definition: Handler.php:54
ilExportHandlerPublicAccessLinkFactoryInterface $public_access_link_factory
Definition: Handler.php:38