Completed
Push — master ( b5804c...0dfbf8 )
by Mike
03:32
created

BusQue   A

Complexity

Total Complexity 18

Size/Duplication

Total Lines 96
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 10

Test Coverage

Coverage 86.36%

Importance

Changes 0
Metric Value
wmc 18
lcom 1
cbo 10
dl 0
loc 96
ccs 38
cts 44
cp 0.8636
rs 10
c 0
b 0
f 0

18 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getQueueName() 0 4 1
A serializeCommand() 0 4 1
A unserializeCommand() 0 4 1
A generateCommandId() 0 4 1
A queueCommand() 0 4 1
A scheduleCommand() 0 4 1
A getQueuedCount() 0 4 1
A purgeCommand() 0 4 1
A listQueues() 0 4 1
A listQueuedIds() 0 4 1
A getCommand() 0 5 1
A workQueue() 0 4 1
A workSchedule() 0 4 1
A deleteQueue() 0 4 1
A listInProgressIds() 0 4 1
A isIdQueued() 0 4 1
A isIdInProgress() 0 4 1
1
<?php
2
3
namespace MGDigital\BusQue;
4
5
class BusQue
6
{
7
8
    private $implementation;
9
10 16
    public function __construct(Implementation $implementation)
11
    {
12 16
        $this->implementation = $implementation;
13 16
    }
14
15 1
    public function getQueueName($command): string
16
    {
17 1
        return $this->implementation->getQueueResolver()->resolveQueueName($command);
18
    }
19
20 1
    public function serializeCommand($command): string
21
    {
22 1
        return $this->implementation->getCommandSerializer()->serialize($command);
23
    }
24
25 2
    public function unserializeCommand(string $serialized)
26
    {
27 2
        return $this->implementation->getCommandSerializer()->unserialize($serialized);
28
    }
29
30 1
    public function generateCommandId($command): string
31
    {
32 1
        return $this->implementation->getCommandIdGenerator()->generateId($command);
33
    }
34
35 1
    public function queueCommand($command, string $commandId = null)
36
    {
37 1
        $this->implementation->getCommandBusAdapter()->handle(new QueuedCommand($command, $commandId));
38 1
    }
39
40 1
    public function scheduleCommand($command, \DateTime $dateTime, string $commandId = null)
41
    {
42 1
        $this->implementation->getCommandBusAdapter()->handle(new ScheduledCommand($command, $dateTime, $commandId));
43 1
    }
44
45 1
    public function isIdQueued(string $queueName, string $id): bool
46
    {
47 1
        return $this->implementation->getQueueDriver()->isIdQueued($queueName, $id);
48
    }
49
50 1
    public function getQueuedCount(string $queueName): int
51
    {
52 1
        return $this->implementation->getQueueDriver()->getQueuedCount($queueName);
53
    }
54
55 1
    public function purgeCommand(string $queueName, string $commandId)
56
    {
57 1
        $this->implementation->getQueueDriver()->purgeCommand($queueName, $commandId);
58 1
    }
59
60 1
    public function deleteQueue(string $queueName)
61
    {
62 1
        $this->implementation->getQueueDriver()->deleteQueue($queueName);
63 1
    }
64
65 1
    public function listQueues(): array
66
    {
67 1
        return $this->implementation->getQueueDriver()->getQueueNames();
68
    }
69
70 1
    public function listQueuedIds(string $queueName, int $offset = 0, int $limit = 10): array
71
    {
72 1
        return $this->implementation->getQueueDriver()->getQueuedIds($queueName, $offset, $limit);
73
    }
74
75 1
    public function isIdInProgress(string $queueName, string $id): bool
76
    {
77 1
        return $this->implementation->getQueueDriver()->isIdConsuming($queueName, $id);
78
    }
79
80 1
    public function listInProgressIds(string $queueName): array
81
    {
82 1
        return $this->implementation->getQueueDriver()->getConsumingIds($queueName);
83
    }
84
85 1
    public function getCommand(string $queueName, string $id)
86
    {
87 1
        $serialized = $this->implementation->getQueueDriver()->readCommand($queueName, $id);
88 1
        return $this->unserializeCommand($serialized);
89
    }
90
91
    public function workQueue(string $queueName, int $n = null, int $time = null)
92
    {
93
        (new QueueWorker($this->implementation))->work($queueName, $n, $time);
94
    }
95
96
    public function workSchedule(int $n = null, int $time = null)
97
    {
98
        (new SchedulerWorker($this->implementation))->work($n, $time);
99
    }
100
}
101