Test Failed
Push — master ( 7d634a...f0cc3f )
by Hirofumi
02:27
created

DoctrineJobFlightManager::preBoardingJobFlights()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 9
c 0
b 0
f 0
ccs 0
cts 9
cp 0
rs 9.9666
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Shippinno\Job\Infrastructure\Application\Messaging;
4
5
use Doctrine\ORM\EntityRepository;
6
use Shippinno\Job\Application\Messaging\JobFlight;
7
use Shippinno\Job\Application\Messaging\JobFlightManager;
8
9
class DoctrineJobFlightManager extends EntityRepository implements JobFlightManager
10
{
11
    /**
12
     * @param int $jobId
13
     * @param string $jobName
14
     * @param string $queue
15
     */
16
    public function created(int $jobId, string $jobName, string $queue): void
17
    {
18
        $this->getEntityManager()->persist(new JobFlight($jobId, $jobName, $queue));
19
        $this->getEntityManager()->flush();
20
    }
21
22
    /**
23
     * {@inheritdoc}
24
     */
25
    public function boarding(int $jobId): void
26
    {
27
        $this->latestJobFlightOfJobId($jobId)->board();
28
        $this->getEntityManager()->flush();
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    public function departed(int $jobId): void
35
    {
36
        $this->latestJobFlightOfJobId($jobId)->depart();
37
        $this->getEntityManager()->flush();
38
    }
39
40
    /**
41
     * {@inheritdoc}
42
     */
43
    public function arrived(int $jobId): void
44
    {
45
        $this->latestJobFlightOfJobId($jobId)->arrive();
46
        $this->getEntityManager()->flush();
47
    }
48
49
    /**
50
     * {@inheritdoc}
51
     */
52
    public function acknowledged(int $jobId): void
53
    {
54
        $this->latestJobFlightOfJobId($jobId)->acknowledge();
55
        $this->getEntityManager()->flush();
56
57
    }
58
59
    /**
60
     * {@inheritdoc}
61
     */
62
    public function abandoned(int $jobId): void
63
    {
64
        $this->latestJobFlightOfJobId($jobId)->abandoned();
65
        $this->getEntityManager()->flush();
66
    }
67
68
    /**
69
     * {@inheritdoc}
70
     */
71
    public function requeued(string $jobId, string $requeuedJobId): void
72
    {
73
        $this->latestJobFlightOfJobId($jobId)->requeued();
74
        $this->getEntityManager()->flush();
75
    }
76
77
    /**
78
     * {@inheritdoc}
79
     */
80
    public function rejected(int $jobId): void
81
    {
82
        $this->latestJobFlightOfJobId($jobId)->rejected();
83
        $this->getEntityManager()->flush();
84
85
    }
86
87
    /**
88
     * {@inheritdoc}
89
     */
90
    public function letGo(int $jobId): void
91
    {
92
        $this->latestJobFlightOfJobId($jobId)->letGo();
93
        $this->getEntityManager()->flush();
94
    }
95
96
    /**
97
     * {@inheritdoc}
98
     */
99
    public function latestJobFlightOfJobId(int $jobId): ?JobFlight
100
    {
101
        return $this->findOneBy(['jobId' => $jobId], ['id' => 'DESC']);
102
    }
103
104
    /**
105
     * @return JobFlight[]
106
     */
107
    public function preBoardingJobFlights(): array
108
    {
109
        return $this->createQueryBuilder('j')
110
            ->select('j')
111
            ->where('j.departure is null')
112
            ->orderBy('j.job_id')
113
            ->getQuery()
114
            ->getResult();
115
    }
116
}
117