Completed
Push — master ( 0e016e...c19ff2 )
by Łukasz
21:50
created

UserPreferenceService::loadUserPreferences()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace eZ\Publish\Core\SignalSlot;
10
11
use eZ\Publish\API\Repository\UserPreferenceService as UserPreferenceServiceInterface;
12
use eZ\Publish\API\Repository\Values\UserPreference\UserPreference;
13
use eZ\Publish\API\Repository\Values\UserPreference\UserPreferenceList;
14
use eZ\Publish\Core\SignalSlot\Signal\UserPreferenceService\UserPreferenceSetSignal;
15
16
class UserPreferenceService implements UserPreferenceServiceInterface
17
{
18
    /**
19
     * @var \eZ\Publish\API\Repository\UserPreferenceService
20
     */
21
    protected $service;
22
23
    /**
24
     * @var \eZ\Publish\Core\SignalSlot\SignalDispatcher
25
     */
26
    protected $signalDispatcher;
27
28
    /**
29
     * @param \eZ\Publish\API\Repository\UserPreferenceService $service
30
     * @param \eZ\Publish\Core\SignalSlot\SignalDispatcher $signalDispatcher
31
     */
32
    public function __construct(UserPreferenceServiceInterface $service, SignalDispatcher $signalDispatcher)
33
    {
34
        $this->service = $service;
35
        $this->signalDispatcher = $signalDispatcher;
36
    }
37
38
    /**
39
     * {@inheritdoc}
40
     */
41
    public function setUserPreference(array $userPreferenceSetStructs): void
42
    {
43
        $this->service->setUserPreference($userPreferenceSetStructs);
44
45
        foreach ($userPreferenceSetStructs as $userPreferenceSetStruct) {
46
            $this->signalDispatcher->emit(new UserPreferenceSetSignal([
47
                'name' => $userPreferenceSetStruct->name,
48
                'value' => $userPreferenceSetStruct->value,
49
            ]));
50
        }
51
    }
52
53
    /**
54
     * {@inheritdoc}
55
     */
56
    public function getUserPreference(string $userPreferenceName): UserPreference
57
    {
58
        return $this->service->getUserPreference($userPreferenceName);
59
    }
60
61
    /**
62
     * {@inheritdoc}
63
     */
64
    public function loadUserPreferences(int $offset = 0, int $limit = 25): UserPreferenceList
65
    {
66
        return $this->service->loadUserPreferences($offset, $limit);
67
    }
68
69
    /**
70
     * {@inheritdoc}
71
     */
72
    public function getUserPreferenceCount(): int
73
    {
74
        return $this->service->getUserPreferenceCount();
75
    }
76
}
77