90 lines
2.3 KiB
PHP
90 lines
2.3 KiB
PHP
|
|
<?php
|
||
|
|
use Rakit\Validation\Validator;
|
||
|
|
|
||
|
|
/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2021*/
|
||
|
|
/**
|
||
|
|
* ValidationService
|
||
|
|
* @copyright 2021 Manaknightdigital Inc.
|
||
|
|
* @link https://manaknightdigital.com
|
||
|
|
* @license Proprietary Software licensing
|
||
|
|
* @author Ryan Wong
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
class ValidationService
|
||
|
|
{
|
||
|
|
protected $_validator;
|
||
|
|
protected $_rules = [];
|
||
|
|
protected $_errors = [];
|
||
|
|
|
||
|
|
public function __construct ()
|
||
|
|
{
|
||
|
|
//https://github.com/rakit/validation
|
||
|
|
$this->_validator = new Validator();
|
||
|
|
}
|
||
|
|
|
||
|
|
public function save_rules($rules)
|
||
|
|
{
|
||
|
|
$this->_rules = $rules;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function get_rules()
|
||
|
|
{
|
||
|
|
return $this->_rules;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function validate ($data)
|
||
|
|
{
|
||
|
|
$rules = $this->make_rules($this->_rules);
|
||
|
|
$validation = $this->_validator->make($data, $rules['array_rules']);
|
||
|
|
$validation->setAliases($rules['array_alias']);
|
||
|
|
|
||
|
|
// $validation->setMessages([
|
||
|
|
// 'required' => ':attribute harus diisi',
|
||
|
|
// 'email' => ':email tidak valid',
|
||
|
|
// ]);
|
||
|
|
$validation->validate();
|
||
|
|
|
||
|
|
if ($validation->fails())
|
||
|
|
{
|
||
|
|
// handling errors
|
||
|
|
$this->_errors = $validation->errors();
|
||
|
|
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public function get_errors ()
|
||
|
|
{
|
||
|
|
return $this->_errors->toArray();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
protected function make_rules()
|
||
|
|
{
|
||
|
|
$array_rules = [];
|
||
|
|
$array_alias = [];
|
||
|
|
foreach($this->_rules as $role_key => $role_value)
|
||
|
|
{
|
||
|
|
$array_rules[$role_value[0]] = $role_value[2];
|
||
|
|
$array_alias[$role_value[0]] = $role_value[1];
|
||
|
|
}
|
||
|
|
|
||
|
|
$response['array_alias'] = $array_alias;
|
||
|
|
$response['array_rules'] = $array_rules;
|
||
|
|
return $response;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 'name' => 'required',
|
||
|
|
// 'email' => 'required|email',
|
||
|
|
// 'password' => 'required|min:6',
|
||
|
|
// 'confirm_password' => 'required|same:password',
|
||
|
|
// 'avatar' => 'required|uploaded_file:0,500K,png,jpeg',
|
||
|
|
// 'skills' => 'array',
|
||
|
|
// 'skills.*.id' => 'required|numeric',
|
||
|
|
// 'skills.*.percentage' => 'required|numeric'
|
||
|
|
}
|