Test Failed
Pull Request — 1.x (#84)
by
unknown
03:49
created

ValidJalaliDate::message()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace Milwad\LaravelValidate\Rules;
4
5
use Closure;
6
use Illuminate\Contracts\Validation\ValidationRule;
0 ignored issues
show
Bug introduced by
The type Illuminate\Contracts\Validation\ValidationRule was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
use Morilog\Jalali\CalendarUtils;
8
9
class ValidJalaliDate implements ValidationRule
10
{
11
    /**
12
     * Check jalali date is valid.
13
     *
14
     * @param string $attribute
15
     * @param mixed $value
16
     * @param Closure $fail
17
     * @return void
18
     */
19
    public function validate(string $attribute, mixed $value, Closure $fail): void
20
    {
21
        if (! $this->isJalaliDateValid($value)) {
22
23
            $fail('validate.jalali_date')->translate();
24
        }
25
    }
26
27
    private function isJalaliDateValid(mixed $value): bool
28
    {
29
        if (! is_string($value)) {
30
            return false;
31
        }
32
33
        $date = explode('/', $value); // TODO: Add construct for jalali date
34
35
        return CalendarUtils::checkDate(...$date);
36
    }
37
}
38