Completed
Pull Request — master (#2831)
by
unknown
11:55
created

Redirect::isAutoRedirect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Kunstmaan\RedirectBundle\Entity;
4
5
use Doctrine\ORM\Mapping as ORM;
6
use Kunstmaan\AdminBundle\Entity\AbstractEntity;
7
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
8
use Symfony\Component\Validator\Constraints as Assert;
9
use Symfony\Component\Validator\Context\ExecutionContextInterface;
10
11
/**
12
 * @ORM\Table(
13
 *     name="kuma_redirects",
14
 *     uniqueConstraints={
15
 *         @ORM\UniqueConstraint(name="kuma_redirects_idx_domain_origin", columns={"domain", "origin"})
16
 *     }
17
 * )
18
 * @ORM\Entity(repositoryClass="Kunstmaan\RedirectBundle\Repository\RedirectRepository")
19
 * @UniqueEntity(fields={"origin", "domain"})
20
 */
21
class Redirect extends AbstractEntity
22
{
23
    /**
24
     * @var string|null
25
     *
26
     * @ORM\Column(name="domain", type="string", length=255, nullable=true)
27
     */
28
    private $domain;
29
30
    /**
31
     * @var string|null
32
     *
33
     * @ORM\Column(name="origin", type="string", length=255)
34
     * @Assert\NotBlank()
35
     */
36
    private $origin;
37
38
    /**
39
     * @var string|null
40
     *
41
     * @ORM\Column(name="note", type="string", length=255, nullable=true)
42
     */
43
    private $note;
44
45
    /**
46
     * @var string|null
47
     *
48
     * @ORM\Column(name="target", type="text")
49
     * @Assert\NotBlank()
50
     */
51
    private $target;
52
53
    /**
54
     * @var bool
55
     *
56
     * @ORM\Column(name="permanent", type="boolean")
57
     */
58
    private $permanent;
59
60
    /**
61
     * @var bool
62
     *
63
     * @ORM\Column(name="is_auto_redirect", type="boolean", nullable=true)
64
     */
65 4
    private $isAutoRedirect = false;
66
67 4
    public function getDomain(): ?string
68
    {
69
        return $this->domain;
70
    }
71
72
    public function setDomain(?string $domain): Redirect
73
    {
74
        $this->domain = $domain;
75
76
        return $this;
77 6
    }
78
79 6
    public function getOrigin(): ?string
80
    {
81 6
        return $this->origin;
82
    }
83
84
    public function setOrigin(?string $origin): Redirect
85
    {
86
        $this->origin = $origin;
87
88
        return $this;
89
    }
90
91 8
    public function getNote(): ?string
92
    {
93 8
        return $this->note;
94
    }
95 8
96
    public function setNote(?string $note): Redirect
97
    {
98
        $this->note = $note;
99
100
        return $this;
101
    }
102
103 6
    public function getTarget(): ?string
104
    {
105 6
        return $this->target;
106
    }
107
108
    public function setTarget(?string $target): Redirect
109
    {
110
        $this->target = $target;
111
112
        return $this;
113
    }
114
115 8
    public function isPermanent(): bool
116
    {
117 8
        return $this->permanent;
118
    }
119 8
120
    public function setPermanent(bool $permanent): Redirect
121
    {
122
        $this->permanent = $permanent;
123
124
        return $this;
125
    }
126
127 6
    public function isAutoRedirect(): ?bool
128
    {
129 6
        return $this->isAutoRedirect;
130
    }
131
132
    public function setIsAutoRedirect(?bool $isAutoRedirect): Redirect
133
    {
134
        $this->isAutoRedirect = $isAutoRedirect;
135
136
        return $this;
137
    }
138
139 6
    /**
140
     * @Assert\Callback
141 6
     *
142
     * @param ExecutionContextInterface $context
143 6
     */
144
    public function validate(ExecutionContextInterface $context): void
145
    {
146
        if ($this->getOrigin() === $this->getTarget()) {
147
            $context->buildViolation('errors.redirect.origin_same_as_target')
148
                ->atPath('target')
149
                ->addViolation();
150
        }
151 4
    }
152
}
153