Code Duplication    Length = 62-62 lines in 2 locations

src/Constraints/Max.php 1 location

@@ 9-70 (lines=62) @@
6
use League\JsonGuard\ErrorCode;
7
use League\JsonGuard\ValidationError;
8
9
class Max implements ParentSchemaAwarePropertyConstraint
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    public static function validate($value, $schema, $parameter, $pointer = null)
15
    {
16
        if (isset($schema->exclusiveMaximum) && $schema->exclusiveMaximum === true) {
17
            return self::validateExclusiveMax($value, $parameter, $pointer);
18
        }
19
20
        return self::validateMax($value, $parameter, $pointer);
21
    }
22
23
    /**
24
     * @param mixed       $value
25
     * @param mixed       $parameter
26
     * @param string|null $pointer
27
     *
28
     * @return \League\JsonGuard\ValidationError|null
29
     */
30
    public static function validateMax($value, $parameter, $pointer = null)
31
    {
32
        if (!is_numeric($value) || $value <= $parameter) {
33
            return null;
34
        }
35
36
        $message = sprintf(
37
            'Number "%s" is not at most "%d"',
38
            JsonGuard\asString($value),
39
            JsonGuard\asString($parameter)
40
        );
41
        return new ValidationError($message, ErrorCode::INVALID_MAX, $value, $pointer, ['max' => $parameter]);
42
    }
43
44
    /**
45
     * @param mixed       $value
46
     * @param mixed       $parameter
47
     * @param string|null $pointer
48
     *
49
     * @return \League\JsonGuard\ValidationError|null
50
     */
51
    public static function validateExclusiveMax($value, $parameter, $pointer = null)
52
    {
53
        if (!is_numeric($value) || $value < $parameter) {
54
            return null;
55
        }
56
57
        $message = sprintf(
58
            'Number "%s" is not less than "%d"',
59
            JsonGuard\asString($value),
60
            JsonGuard\asString($parameter)
61
        );
62
        return new ValidationError(
63
            $message,
64
            ErrorCode::INVALID_EXCLUSIVE_MAX,
65
            $value,
66
            $pointer,
67
            ['exclusive_max' => $parameter]
68
        );
69
    }
70
}
71

src/Constraints/Min.php 1 location

@@ 9-70 (lines=62) @@
6
use League\JsonGuard\ErrorCode;
7
use League\JsonGuard\ValidationError;
8
9
class Min implements ParentSchemaAwarePropertyConstraint
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    public static function validate($value, $schema, $parameter, $pointer = null)
15
    {
16
        if (isset($schema->exclusiveMinimum) && $schema->exclusiveMinimum === true) {
17
            return self::validateExclusiveMin($value, $parameter, $pointer);
18
        }
19
20
        return self::validateMin($value, $parameter, $pointer);
21
    }
22
23
    /**
24
     * @param mixed       $value
25
     * @param mixed       $parameter
26
     * @param string|null $pointer
27
     *
28
     * @return \League\JsonGuard\ValidationError|null
29
     */
30
    public static function validateMin($value, $parameter, $pointer = null)
31
    {
32
        if (!is_numeric($value) || $value >= $parameter) {
33
            return null;
34
        }
35
36
        $message = sprintf(
37
            'Number "%s" is not at least "%d"',
38
            JsonGuard\asString($value),
39
            JsonGuard\asString($parameter)
40
        );
41
        return new ValidationError($message, ErrorCode::INVALID_MIN, $value, $pointer, ['min' => $parameter]);
42
    }
43
44
    /**
45
     * @param mixed       $value
46
     * @param mixed       $parameter
47
     * @param string|null $pointer
48
     *
49
     * @return \League\JsonGuard\ValidationError|null
50
     */
51
    public static function validateExclusiveMin($value, $parameter, $pointer = null)
52
    {
53
        if (!is_numeric($value) || $value > $parameter) {
54
            return null;
55
        }
56
57
        $message = sprintf(
58
            'Number "%s" is not at least greater than "%d"',
59
            JsonGuard\asString($value),
60
            JsonGuard\asString($parameter)
61
        );
62
        return new ValidationError(
63
            $message,
64
            ErrorCode::INVALID_EXCLUSIVE_MIN,
65
            $value,
66
            $pointer,
67
            ['exclusive_min' => $parameter]
68
        );
69
    }
70
}
71