-
Notifications
You must be signed in to change notification settings - Fork 449
/
ValidatorController.php
30 lines (26 loc) · 1.09 KB
/
ValidatorController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
namespace App\Http\Controllers\Educacenso;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ValidatorController extends Controller
{
public const VALIDATORS = [
'nome' => 'iEducar\Modules\Educacenso\Validator\NameValidator',
'data-nascimento' => 'iEducar\Modules\Educacenso\Validator\BirthDateValidator',
'certidao-nascimento' => 'iEducar\Modules\Educacenso\Validator\BirthCertificateValidator',
];
public function validation($validator, Request $request)
{
$validatorClass = self::VALIDATORS[$validator] ?? null;
if (is_null($validatorClass)) {
return response()->json(['error' => 'Wrong validator', 'success' => false], 422);
}
$values = is_array($request->values) ? $request->values : [($request->value ?: '')];
$validator = new $validatorClass(...$values);
if ($validator->isValid()) {
return response()->json(['success' => true]);
} else {
return response()->json(['error' => $validator->getMessage(), 'success' => false], 422);
}
}
}