Files
animethemes-server/app/Http/Requests/Api/UpdateRequest.php
T
2025-10-01 17:18:31 -03:00

45 lines
1008 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Requests\Api;
use App\Contracts\Http\Api\Field\UpdatableField;
use App\Http\Api\Field\Field;
use Illuminate\Support\Arr;
class UpdateRequest extends WriteRequest
{
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
$rules = [];
foreach ($this->schema()->fields() as $field) {
$column = $field->getColumn();
if ($field instanceof UpdatableField) {
$rules += [$column => $field->getUpdateRules($this)];
}
}
return $rules;
}
/**
* Get fields for validation preparation.
*
* @return Field[]
*
* @noinspection PhpMissingParentCallCommonInspection
*/
protected function getFieldsForPreparation(): array
{
return Arr::where(
$this->schema()->fields(),
fn (Field $field): bool => $field instanceof UpdatableField
);
}
}