Test Failed
Pull Request — master (#38)
by Patrick
03:34
created

ProjektronClientQueuePluginPlugin   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 21
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A createActivityDto() 0 7 1
A consumeMessage() 0 5 1
A getQueueName() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of forecast.it.fill project.
7
 * (c) Patrick Jaja <[email protected]>
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace ForecastAutomation\ProjektronClient\Shared\Plugin;
13
14
use ForecastAutomation\Activity\Shared\Dto\ActivityDto;
15
use ForecastAutomation\Activity\Shared\Dto\ActivityDtoCollection;
16
use ForecastAutomation\Kernel\Shared\Plugin\AbstractPlugin;
17
use ForecastAutomation\ProjektronClient\Shared\Config\ProjektronClientQueueConstants;
18
use ForecastAutomation\QueueClient\Shared\Dto\MessageDto;
19
use ForecastAutomation\QueueClient\Shared\Plugin\QueuePluginInterface;
20
21
/**
22
 * @method \ForecastAutomation\ProjektronClient\ProjektronClientFacade getFacade()
23
 */
24
class ProjektronClientQueuePluginPlugin extends AbstractPlugin implements QueuePluginInterface
25
{
26
    public function getQueueName(): string
27
    {
28
        return ProjektronClientQueueConstants::QUEUE_NAME;
29
    }
30
31
    public function consumeMessage(MessageDto $messageDto): bool
32
    {
33
        $this->getFacade()->writeActivities(new ActivityDtoCollection($this->createActivityDto($messageDto)));
34
35
        return true;
36
    }
37
38
    private function createActivityDto(MessageDto $messageDto)
39
    {
40
        return new ActivityDto(
41
            $messageDto->data['needle'],
42
            $messageDto->data['description'],
43
            new \DateTime($messageDto->data['created']),
44
            (int) $messageDto->data['duration']
45
        );
46
    }
47
}
48