ScheduledQueueService   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
dl 0
loc 28
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A findScheduledMessageList() 0 3 1
A unscheduleMessage() 0 4 2
A scheduleMessage() 0 3 1
1
<?php
2
3
namespace Werkspot\MessageQueue\ScheduledQueue;
4
5
use Werkspot\MessageQueue\Message\MessageInterface;
6
use Werkspot\MessageQueue\ScheduledQueue\Repository\MessageRepositoryInterface;
7
8
class ScheduledQueueService implements ScheduledQueueServiceInterface
9
{
10
    const EVENT_PREFIX = 'queued.';
11
12
    /**
13
     * @var MessageRepositoryInterface
14
     */
15
    private $scheduledMessageRepository;
16
17 5
    public function __construct(MessageRepositoryInterface $scheduledMessageRepository)
18
    {
19 5
        $this->scheduledMessageRepository = $scheduledMessageRepository;
20 5
    }
21
22 2
    public function scheduleMessage(MessageInterface $message): void
23
    {
24 2
        $this->scheduledMessageRepository->save($message);
25 2
    }
26
27 3
    public function findScheduledMessageList(int $quantity = 1): array
28
    {
29 3
        return $this->scheduledMessageRepository->findMessagesToDeliver($quantity);
30
    }
31
32 1
    public function unscheduleMessage(MessageInterface ...$messageList): void
33
    {
34 1
        foreach ($messageList as $message) {
35 1
            $this->scheduledMessageRepository->delete($message);
36
        }
37 1
    }
38
}
39