avalanche-development/swagger-validation-middleware

View on GitHub
src/Parameter/Format/IntegerCheck.php

Summary

Maintainability
A
45 mins
Test Coverage
<?php

namespace AvalancheDevelopment\SwaggerValidationMiddleware\Parameter\Format;

use AvalancheDevelopment\SwaggerValidationMiddleware\Parameter\ValidationException;

class IntegerCheck
{

    /**
     * @param array $param
     */
    public function check(array $param)
    {
        if (!filter_var($param['value'], FILTER_VALIDATE_INT)) {
            throw new ValidationException('Value is not an integer');
        }
        if (!isset($param['format'])) {
            return;
        }

        if ($param['format'] === 'int32' && (
            $param['value'] < -2147483647 || $param['value'] > 2147483647
        )) {
            throw new ValidationException('Value exceeds int32 bounds');
        }
        if ($param['format'] === 'int64' && (
            $param['value'] < -9223372036854775807 || $param['value'] > 9223372036854775807
        )) {
            throw new ValidationException('Value exceeds int64 bounds');
        }
    }
}