CustomerAccessRepository   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 31
dl 0
loc 75
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A findCustomerAccessByContentType() 0 14 2
A getAllContentTypes() 0 13 1
A getUnrestrictedContentTypes() 0 13 1
A getRestrictedContentTypes() 0 13 1
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Zed\CustomerAccess\Persistence;
11
12
use Generated\Shared\Transfer\ContentTypeAccessTransfer;
13
use Generated\Shared\Transfer\CustomerAccessTransfer;
14
use Spryker\Zed\Kernel\Persistence\AbstractRepository;
15
16
/**
17
 * @method \Pyz\Zed\CustomerAccess\Persistence\CustomerAccessPersistenceFactory getFactory()
18
 */
19
class CustomerAccessRepository extends AbstractRepository implements CustomerAccessRepositoryInterface
20
{
21
    /**
22
     * @param string $contentType
23
     *
24
     * @return \Generated\Shared\Transfer\ContentTypeAccessTransfer|null
25
     */
26
    public function findCustomerAccessByContentType($contentType): ?ContentTypeAccessTransfer // phpcs:ignore
27
    {
28
        $customerAccessEntity = $this->getFactory()
29
            ->getUnauthenticatedCustomerAccessQuery()
30
            ->filterByContentType($contentType)
31
            ->findOne();
32
33
        if (!$customerAccessEntity) {
34
            return null;
35
        }
36
37
        return $this->getFactory()
38
            ->createCustomerAccessMapper()
39
            ->mapCustomerAccessEntityToContentTypeAccessTransfer($customerAccessEntity, new ContentTypeAccessTransfer());
40
    }
41
42
    /**
43
     * @return \Generated\Shared\Transfer\CustomerAccessTransfer
44
     */
45
    public function getUnrestrictedContentTypes(): CustomerAccessTransfer
46
    {
47
        /**
48
         * @var \Propel\Runtime\Collection\ObjectCollection $unauthenticatedCustomerAccessEntity
49
         */
50
        $unauthenticatedCustomerAccessEntity = $this->getFactory()
51
            ->getUnauthenticatedCustomerAccessQuery()
52
            ->filterByIsRestricted(false)
53
            ->find();
54
55
        return $this->getFactory()
56
            ->createCustomerAccessMapper()
57
            ->mapEntitiesToCustomerAccessTransfer($unauthenticatedCustomerAccessEntity, new CustomerAccessTransfer());
58
    }
59
60
    /**
61
     * @return \Generated\Shared\Transfer\CustomerAccessTransfer
62
     */
63
    public function getAllContentTypes(): CustomerAccessTransfer
64
    {
65
        /**
66
         * @var \Propel\Runtime\Collection\ObjectCollection $unauthenticatedCustomerAccessEntity
67
         */
68
        $unauthenticatedCustomerAccessEntity = $this->getFactory()
69
            ->getUnauthenticatedCustomerAccessQuery()
70
            ->orderByIdUnauthenticatedCustomerAccess()
71
            ->find();
72
73
        return $this->getFactory()
74
            ->createCustomerAccessMapper()
75
            ->mapEntitiesToCustomerAccessTransfer($unauthenticatedCustomerAccessEntity, new CustomerAccessTransfer());
76
    }
77
78
    /**
79
     * @return \Generated\Shared\Transfer\CustomerAccessTransfer
80
     */
81
    public function getRestrictedContentTypes(): CustomerAccessTransfer
82
    {
83
        /**
84
         * @var \Propel\Runtime\Collection\ObjectCollection $unauthenticatedCustomerAccessEntity
85
         */
86
        $unauthenticatedCustomerAccessEntity = $this->getFactory()
87
            ->getUnauthenticatedCustomerAccessQuery()
88
            ->filterByIsRestricted(true)
89
            ->find();
90
91
        return $this->getFactory()
92
            ->createCustomerAccessMapper()
93
            ->mapEntitiesToCustomerAccessTransfer($unauthenticatedCustomerAccessEntity, new CustomerAccessTransfer());
94
    }
95
}
96