Files
Phraseanet/lib/Alchemy/Phrasea/WorkerManager/Subscriber/ExposeSubscriber.php
jygaulier f2f5db3df6 Refacto queues & workers
- define queues in one unique place
- fix some admin ux
- patch conf
2021-01-07 10:39:43 +01:00

50 lines
1.6 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(),
'accessToken' => $event->getAccessToken()
]
];
$this->messagePublisher->publishMessage($payload, MessagePublisher::EXPOSE_UPLOAD_TYPE);
}
}
public static function getSubscribedEvents()
{
return [
WorkerEvents::EXPOSE_UPLOAD_ASSETS => 'onExposeUploadAssets',
];
}
}