![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/WebhookBundle/Entity/ |
<?php namespace Mautic\WebhookBundle\Entity; use Doctrine\DBAL\Platforms\MySQLPlatform; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; class WebhookQueue { /** * @var int|null */ private $id; /** * @var Webhook */ private $webhook; /** * @var \DateTimeInterface|null */ private $dateAdded; /** * @var string|null */ private $payload; // @phpstan-ignore-line (BC: plain payload is fetched by ORM) /** * @var string|resource|null */ private $payloadCompressed; /** * @var Event **/ private $event; public static function loadMetadata(ORM\ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('webhook_queue') ->setCustomRepositoryClass(WebhookQueueRepository::class); $builder->addId(); $builder->createManyToOne('webhook', 'Webhook') ->addJoinColumn('webhook_id', 'id', false, false, 'CASCADE') ->build(); $builder->addNullableField('dateAdded', Types::DATETIME_MUTABLE, 'date_added'); $builder->addNullableField('payload', Types::TEXT); $builder->createField('payloadCompressed', Types::BLOB) ->columnName('payload_compressed') ->nullable() ->length(MySQLPlatform::LENGTH_LIMIT_MEDIUMBLOB) ->build(); $builder->createManyToOne('event', 'Event') ->inversedBy('queues') ->addJoinColumn('event_id', 'id', false, false, 'CASCADE') ->build(); } /** * @return int|null */ public function getId() { return $this->id; } /** * @return Webhook|null */ public function getWebhook() { return $this->webhook; } /** * @param Webhook|null $webhook * * @return WebhookQueue */ public function setWebhook($webhook) { $this->webhook = $webhook; return $this; } /** * @return \DateTimeInterface|null */ public function getDateAdded() { return $this->dateAdded; } /** * @param \DateTime|null $dateAdded * * @return WebhookQueue */ public function setDateAdded($dateAdded) { $this->dateAdded = $dateAdded; return $this; } /** * @return string|null */ public function getPayload() { if (null !== $this->payload) { // BC: plain payload is fetched by ORM return $this->payload; } if (null === $this->payloadCompressed) { // no payload is set return null; } $payloadCompressed = $this->payloadCompressed; if (is_resource($payloadCompressed)) { // compressed payload is fetched by ORM $payloadCompressed = stream_get_contents($this->payloadCompressed); } return gzuncompress($payloadCompressed); } /** * @param string $payload * * @return WebhookQueue */ public function setPayload($payload) { $this->payloadCompressed = gzcompress($payload, 9); return $this; } /** * @return Event|null */ public function getEvent() { return $this->event; } /** * @param Event|null $event * * @return WebhookQueue */ public function setEvent($event) { $this->event = $event; return $this; } }