Files
php_assessment_1/validation-service.php
emmymayo 77037e7e84 init
2025-02-04 23:06:08 +01:00

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'
}