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

ValidJalaliDate::validate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 2
nc 2
nop 3
dl 0
loc 5
rs 10
c 1
b 0
f 0
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