Passed
Push — master ( 6afdcd...dc022a )
by Hirofumi
05:03
created

FilterNotificationsHandler::handle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 9
cts 9
cp 1
rs 9.7998
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Shippinno\Notification\Application\Query;
5
6
use Shippinno\Notification\Application\DataTransformer\NotificationDataTransformer;
7
use Shippinno\Notification\Domain\Model\Notification;
8
use Shippinno\Notification\Domain\Model\NotificationRepository;
9
10
class FilterNotificationsHandler
11
{
12
    /**
13
     * @var NotificationRepository
14
     */
15
    private $notificationRepository;
16
17
    /**
18
     * @var NotificationDataTransformer
19
     */
20
    private $notificationDataTransformer;
21
22
    /**
23
     * @param NotificationRepository $notificationRepository
24
     * @param NotificationDataTransformer $notificationDataTransformer
25
     */
26 1
    public function __construct(
27
        NotificationRepository $notificationRepository,
28
        NotificationDataTransformer $notificationDataTransformer
29
    ) {
30 1
        $this->notificationRepository = $notificationRepository;
31 1
        $this->notificationDataTransformer = $notificationDataTransformer;
32 1
    }
33
34
    /**
35
     * @param FilterNotifications $query
36
     * @return array
37
     */
38 1
    public function handle(FilterNotifications $query): array
39
    {
40 1
        $notifications = $this->notificationRepository->query(
41 1
            $query->specification(),
42 1
            $query->orderings(),
43 1
            $query->maxResults(),
44 1
            $query->firstResult()
45
        );
46
47
        return array_map(function (Notification $notification) {
48 1
            $this->notificationDataTransformer->write($notification);
49 1
            return $this->notificationDataTransformer->read();
50 1
        }, $notifications);
51
    }
52
}
53