appwrite/src/Appwrite/Event/Messaging.php

77 lines
1.6 KiB
PHP
Raw Normal View History

<?php
namespace Appwrite\Event;
2023-10-09 11:59:26 +00:00
use ResqueScheduler;
use Utopia\Database\DateTime;
class Messaging extends Event
{
protected ?string $messageId = null;
2023-10-09 11:59:26 +00:00
private ?string $deliveryTime = null;
public function __construct()
{
parent::__construct(Event::MESSAGING_QUEUE_NAME, Event::MESSAGING_CLASS_NAME);
}
2023-09-05 17:40:33 +00:00
/**
* Sets message ID for the messaging event.
*
* @param string $message
* @return self
*/
public function setMessageId(string $messageId): self
{
$this->messageId = $messageId;
return $this;
}
/**
* Returns set message ID for the messaging event.
*
* @return string
*/
public function getMessageId(): string
{
return $this->messageId;
}
/**
2023-10-09 11:59:26 +00:00
* Sets Delivery time for the messaging event.
*
2023-10-09 11:59:26 +00:00
* @param string $deliveryTime
* @return self
*/
public function setDeliveryTime(string $deliveryTime): self
{
$this->deliveryTime = $deliveryTime;
return $this;
}
/**
* Returns set Delivery Time for the messaging event.
*
* @return string
*/
public function getDeliveryTime(): string
{
return $this->deliveryTime;
}
/**
* Executes the event and sends it to the messaging worker.
*/
2023-10-09 11:59:26 +00:00
public function trigger(): string | bool
{
2023-10-09 11:59:26 +00:00
ResqueScheduler::enqueueAt(!empty($this->deliveryTime) ? $this->deliveryTime : DateTime::now(), $this->queue, $this->class, [
'project' => $this->project,
'user' => $this->user,
'messageId' => $this->messageId,
]);
2023-10-09 11:59:26 +00:00
return true;
}
}