Files
Phraseanet/lib/Alchemy/Phrasea/WorkerManager/Subscriber/ExposeSubscriber.php
2020-10-06 18:06:36 +03:00

49 lines
1.5 KiB
PHP

<?php
namespace Alchemy\Phrasea\WorkerManager\Subscriber;
use Alchemy\Phrasea\WorkerManager\Event\ExposeUploadEvent;
use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents;
use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ExposeSubscriber implements EventSubscriberInterface
{
/** @var MessagePublisher $messagePublisher */
private $messagePublisher;
public function __construct(MessagePublisher $messagePublisher)
{
$this->messagePublisher = $messagePublisher;
}
public function onExposeUploadAssets(ExposeUploadEvent $event)
{
foreach (explode(";", $event->getLst()) as $bas_rec) {
$basrec = explode('_', $bas_rec);
if (count($basrec) != 2) {
continue;
}
$payload = [
'message_type' => MessagePublisher::EXPOSE_UPLOAD_TYPE,
'payload' => [
'recordId' => (int) $basrec[1],
'databoxId' => (int) $basrec[0],
'exposeName' => $event->getExposeName(),
'publicationId' => $event->getPublicationId()
]
];
$this->messagePublisher->publishMessage($payload, MessagePublisher::EXPOSE_UPLOAD_QUEUE);
}
}
public static function getSubscribedEvents()
{
return [
WorkerEvents::EXPOSE_UPLOAD_ASSETS => 'onExposeUploadAssets',
];
}
}