<?php 
 
namespace Lagdo\Polr\Admin\Helpers; 
 
use Valitron\Validator as ValitronValidator; 
 
class Validator 
{ 
    /** 
     * Validate dates for stats 
     * 
     * @param array $dates 
     * 
     * @return boolean 
     */ 
    public function validateStatsDate(array $dates) 
    { 
        $validator = new ValitronValidator($dates); 
        $validator->rule('date', ['right_bound', 'left_bound']); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate link ending 
     * 
     * @param string $ending 
     * 
     * @return boolean 
     */ 
    public function validateLinkEnding($ending) 
    { 
        $values = [ 
            'ending' => $ending, 
        ]; 
        $rules = array( 
            'ending' => [['required'], ['slug']], 
        ); 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate link 
     * 
     * @param array $values 
     * @param boolean $endingRequired 
     * 
     * @return boolean 
     */ 
    public function validateLinkUrl(array $values, $endingRequired) 
    { 
        $rules = array( 
            'ending' => [['slug']], 
            'url' => [['required'], ['url']], 
        ); 
        if(($endingRequired)) 
        { 
            $rules['ending'][] = ['required']; 
        } 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate link status 
     * 
     * @param array $values 
     * 
     * @return boolean 
     */ 
    public function validateLinkStatus(array $values) 
    { 
        $rules = array( 
            'ending' => [['required'], ['slug']], 
            'status' => [['required'], ['in', [0, 1]]], 
        ); 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate end point name 
     * 
     * @param string $endpoint 
     * 
     * @return boolean 
     */ 
    public function validateEndpoint($endpoint) 
    { 
        $values = [ 
            'endpoint' => $endpoint, 
        ]; 
        $rules = array( 
            'endpoint' => [['required'], ['slug']], 
        ); 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate an id (integer) 
     * 
     * @param integer $id 
     * 
     * @return boolean 
     */ 
    public function validateId($id) 
    { 
        $values = ['id' => $id]; 
        $rules = [ 
            'id' => [['required'], ['integer']], 
        ]; 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate user quota 
     * 
     * @param array $values 
     * 
     * @return boolean 
     */ 
    public function validateUserQuota(array $values) 
    { 
        $rules = [ 
            'id' => [['required'], ['integer']], 
            'quota' => [['required'], ['integer']], 
        ]; 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate user status 
     * 
     * @param array $values 
     * 
     * @return boolean 
     */ 
    public function validateUserStatus(array $values) 
    { 
        $rules = [ 
            'id' => [['required'], ['integer']], 
            'status' => [['required'], ['integer'], ['in', [0, 1]]], 
        ]; 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
 
    /** 
     * Validate user role 
     * 
     * @param array $values 
     * 
     * @return boolean 
     */ 
    public function validateUserRole(array $values) 
    { 
        $rules = [ 
            'id' => [['required'], ['integer']], 
            'role' => [['required'], ['alphaNum'], ['lengthBetween', 1, 16]], 
        ]; 
        $validator = new ValitronValidator($values); 
        $validator->mapFieldsRules($rules); 
        return $validator->validate(); 
    } 
} 
 
 |