Files
Leantime/app/Domain/Queue/Workers/HttpRequestWorker.php

45 lines
1.0 KiB
PHP

<?php
namespace Leantime\Domain\Queue\Workers;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Leantime\Domain\Queue\Repositories\Queue;
class HttpRequestWorker
{
public function __construct(
private Queue $queue,
private Client $client
) {}
public function handleQueue($messages)
{
foreach ($messages as $request) {
try {
$subjectArray = safe_unserialize($request['subject'], []);
$messageArray = safe_unserialize($request['message'], []);
$response = $this->client->request(
$subjectArray['method'],
$subjectArray['url'],
$messageArray
);
$this->queue->deleteMessageInQueue($request['msghash']);
} catch (GuzzleException $e) {
report($e);
// Temp to clear out http requests
$this->queue->deleteMessageInQueue($request['msghash']);
}
}
}
}