Test Failed
Push — master ( e0c95c...ecb0ac )
by Patrick
10:20 queued 15s
created

generateActivityToDate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 5
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\PeriodicalActivity\Business;
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\PeriodicalActivity\Shared\Dto\PeriodicalActivityConfigDto;
18
use ForecastAutomation\QueueClient\QueueClientFacade;
19
use ForecastAutomation\QueueClient\Shared\Dto\MessageCollectionDto;
20
use ForecastAutomation\QueueClient\Shared\Dto\MessageDto;
21
22
class PeriodicalActivityDataImportProcess
23
{
24
    public const PERIODICAL_SUFFIX = 'Geplanter Termin';
25
26
    public function __construct(
27
        private PeriodicalActivityConfigReader $periodicalActivityConfigReader,
28
        private QueueClientFacade $queueClientFacade
29
    ) {
30
    }
31
32
    public function generateActivityToDate(string $periodicalDate): ActivityDtoCollection
33
    {
34
        return $this->generateActivity(
35
            $this->periodicalActivityConfigReader->readPeriodicalConfig($periodicalDate),
36
            $periodicalDate
37
        );
38
    }
39
40
    private function createMessageCollectionDto(ActivityDtoCollection $activityDtoCollection): MessageCollectionDto
0 ignored issues
show
Unused Code introduced by
The method createMessageCollectionDto() is not used, and could be removed.

This check looks for private methods that have been defined, but are not used inside the class.

Loading history...
41
    {
42
        $messages = [];
43
        foreach ($activityDtoCollection as $activityDto) {
44
            $messages[] =
45
                new MessageDto(
46
                    ['created' => $activityDto->created->format('c')] + (array) $activityDto,
47
                    ForecastClientQueueConstants::QUEUE_NAME,
48
                    ForecastClientQueueConstants::IMPORT_EVENT
49
                );
50
        }
51
52
        return new MessageCollectionDto(...$messages);
53
    }
54
55
    private function generateActivity(
56
        array $periodicalConfigDtoCollection,
57
        string $periodicalDate
58
    ): ActivityDtoCollection {
59
        $activityDtoArray = [];
60
        /** @var PeriodicalActivityConfigDto $periodicalConfigDto */
61
        foreach ($periodicalConfigDtoCollection as $periodicalConfigDto) {
62
            $activityDtoArray[] = new ActivityDto(
63
                $periodicalConfigDto->project_id,
64
                sprintf('%s: %s', self::PERIODICAL_SUFFIX, $periodicalConfigDto->note),
65
                new \DateTime(date('d-m-Y', strtotime($periodicalDate))),
66
                $periodicalConfigDto->duration
67
            );
68
        }
69
70
        return new ActivityDtoCollection(...$activityDtoArray);
71
    }
72
}
73