dlundgren/phagrancy

View on GitHub
src/Model/Input/BoxUpload.php

Summary

Maintainability
A
3 hrs
Test Coverage
A
100%
<?php

/**
 * @file
 * Contains Phagrancy\Model\Input\BoxUpload
 */

namespace Phagrancy\Model\Input;

use Validator\LIVR;

/**
 * Input for the BoxUpload
 *
 * Validates the scope, name, version, provider
 *
 * @package Phagrancy\Model\Input
 */
class BoxUpload
{
    use IsValidator, ValidatesScope, ValidatesBoxName, ValidatesVersion;

    public function __construct()
    {
        LIVR::registerDefaultRules(
            [
                'scope'    => [$this, 'validateScope'],
                'name'     => [$this, 'validateBoxName'],
                'version'  => [$this, 'validateVersion'],
                'provider' => [$this, 'validateProvider']
            ]);
    }

    public function validate($params)
    {
        return $this->perform(
            $params,
            [
                'scope'    => self::$SCOPE_RULE,
                'name'     => self::$BOX_NAME_RULE,
                'version'  => self::$VERSION_RULE,
                'provider' => ['required', 'trim', 'to_lc']
            ]);
    }
}