Completed
Push — master ( 3f6522...41fedd )
by Antoine
05:33
created

TemplateRepository::matching()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
ccs 0
cts 0
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * Copyright (c) 2014 Roave, LLC.
4
 * All rights reserved.
5
 *
6
 * Redistribution and use in source and binary forms, with or without
7
 * modification, are permitted provided that the following conditions
8
 * are met:
9
 *
10
 *   * Redistributions of source code must retain the above copyright
11
 *     notice, this list of conditions and the following disclaimer.
12
 *
13
 *   * Redistributions in binary form must reproduce the above copyright
14
 *     notice, this list of conditions and the following disclaimer in
15
 *     the documentation and/or other materials provided with the
16
 *     distribution.
17
 *
18
 *   * Neither the names of the copyright holders nor the names of the
19
 *     contributors may be used to endorse or promote products derived
20
 *     from this software without specific prior written permission.
21
 *
22
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
 * POSSIBILITY OF SUCH DAMAGE.
34
 *
35
 * @author Antoine Hedgecock
36
 *
37
 * @copyright 2014 Roave, LLC
38
 * @license http://www.opensource.org/licenses/bsd-license.php  BSD License
39
 */
40
41
namespace Roave\EmailTemplates\Repository;
42
43
use Doctrine\Common\Collections\Criteria;
44
use Doctrine\Common\Persistence\ObjectRepository;
45
use Roave\EmailTemplates\Entity\TemplateEntity;
46
47
/**
48
 * Class TemplateRepositoryFactory
49
 */
50
class TemplateRepository implements TemplateRepositoryInterface
51
{
52
    /**
53
     * @var ObjectRepository
54
     */
55
    protected $objectRepository;
56
57
    /**
58
     * @param ObjectRepository $objectRepository
59
     */
60
    public function __construct(ObjectRepository $objectRepository)
61
    {
62
        $this->objectRepository = $objectRepository;
63
    }
64
65
    /**
66
     * Retrieve a set of templates by it's
67
     *
68
     * @param mixed $id
69
     *
70
     * @return TemplateEntity[]
71 2
     */
72
    public function getById($id)
73 2
    {
74
        return $this->objectRepository->findBy(['id' => $id]);
75
    }
76
77
    /**
78
     * Retrieve a template by it's id and locale
79
     *
80
     * @param string $templateId
81
     * @param string $locale
82
     *
83
     * @return TemplateEntity|null
84 2
     */
85
    public function getByIdAndLocale($templateId, $locale)
86 2
    {
87
        return $this->objectRepository->findOneBy(['id' => $templateId, 'locale' => $locale]);
88
    }
89
90
    /**
91
     * Find all objects matching the provided criteria
92
     *
93
     * @param Criteria $criteria
94
     *
95
     * @return array
96
     */
97
    public function matching(Criteria $criteria)
98
    {
99
        return $this->objectRepository->matching($criteria);
100
    }
101
}
102