/** * Adds a message to the queue. * * @param Message $message * @param $tokens * @param $language * * @return $this */ public function addMessage(Message $message, $tokens, $language) { $gateway = $message->getRelated('gateway'); if ($gateway === null || $gateway->type !== 'queue') { throw new \InvalidArgumentException('You cannot add a message to the queue that does not belong to any queue gateway.'); } $objQueuedMessage = new QueuedMessage(); $objQueuedMessage->message = $message->id; $objQueuedMessage->sourceQueue = $gateway->id; $objQueuedMessage->targetGateway = $gateway->queue_targetGateway; $objQueuedMessage->dateAdded = time(); $objQueuedMessage->setTokens($tokens); $objQueuedMessage->language = $language; $objQueuedMessage->save(); return $this; }