Test Setup Failed
Pull Request — master (#28)
by Patrick
07:50 queued 04:34
created

createActivityDto()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 5
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 7
rs 10
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\ForecastClient\Shared\Plugin;
13
14
use ForecastAutomation\Activity\Shared\Dto\ActivityDto;
15
use ForecastAutomation\Activity\Shared\Dto\ActivityDtoCollection;
16
use ForecastAutomation\ForecastClient\Shared\Config\ForecastClientQueueConstants;
17
use ForecastAutomation\Kernel\Shared\Plugin\AbstractPlugin;
18
use ForecastAutomation\QueueClient\Shared\Dto\MessageDto;
19
use ForecastAutomation\QueueClient\Shared\Plugin\QueuePluginInterface;
20
21
/**
22
 * @method \ForecastAutomation\ForecastClient\ForecastClientFacade getFacade()
23
 */
24
class ForecastClientQueuePluginPlugin extends AbstractPlugin implements QueuePluginInterface
25
{
26
    public function getQueueName(): string
27
    {
28
        return ForecastClientQueueConstants::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