Code Duplication    Length = 40-40 lines in 2 locations

src/Rules/DateGreaterThan.php 1 location

@@ 8-47 (lines=40) @@
5
use Illuminate\Contracts\Validation\Rule;
6
use Carbon\Carbon;
7
8
class DateGreaterThan implements Rule
9
{
10
    /** @var \Carbon\Carbon */
11
    protected $date;
12
13
    /** @var bool */
14
    protected $orEquals = false;
15
16
    public function __construct(Carbon $date)
17
    {
18
        $this->date = $date->copy();
19
    }
20
21
    public function orEquals(bool $orEquals = true): DateGreaterThan
22
    {
23
        $this->orEquals = $orEquals;
24
25
        return $this;
26
    }
27
28
    public function passes($attribute, $value)
29
    {
30
        $inputDate = Carbon::make($value);
31
32
        if ($this->orEquals) {
33
            return $inputDate->greaterThanOrEqualTo($this->date);
34
        }
35
36
        return $inputDate->greaterThan($this->date);
37
    }
38
39
    public function message()
40
    {
41
        if ($this->orEquals) {
42
            return __('validationRules.date_greater_than_or_equals');
43
        }
44
45
        return __('validationRules.date_greater_than');
46
    }
47
}
48

src/Rules/DateLessThan.php 1 location

@@ 8-47 (lines=40) @@
5
use Illuminate\Contracts\Validation\Rule;
6
use Carbon\Carbon;
7
8
class DateLessThan implements Rule
9
{
10
    /** @var \Carbon\Carbon */
11
    protected $date;
12
13
    /** @var bool */
14
    protected $orEquals = false;
15
16
    public function __construct(Carbon $date)
17
    {
18
        $this->date = $date->copy();
19
    }
20
21
    public function orEquals(bool $orEquals = true): DateLessThan
22
    {
23
        $this->orEquals = $orEquals;
24
25
        return $this;
26
    }
27
28
    public function passes($attribute, $value)
29
    {
30
        $inputDate = Carbon::make($value);
31
32
        if ($this->orEquals) {
33
            return $inputDate->lessThanOrEqualTo($this->date);
34
        }
35
36
        return $inputDate->lessThan($this->date);
37
    }
38
39
    public function message()
40
    {
41
        if ($this->orEquals) {
42
            return __('validationRules.date_less_than_or_equals');
43
        }
44
45
        return __('validationRules.date_less_than');
46
    }
47
}
48