89 lines
2.9 KiB
PHP
89 lines
2.9 KiB
PHP
<?php
|
||
|
||
namespace Modules\Tasks\Application;
|
||
|
||
use Modules\Src\TraitValidator;
|
||
|
||
/**
|
||
* Класс Validator - валидатор входных данных для операций с задачами.
|
||
* Использует трейт TraitValidator для базовой функциональности валидации.
|
||
* Реализует проверку данных для различных операций API.
|
||
*/
|
||
class Validator
|
||
{
|
||
// Используем трейт с базовой логикой валидации
|
||
use TraitValidator;
|
||
|
||
/**
|
||
* Валидация данных для создания задачи
|
||
*
|
||
* @param array $data Входные данные
|
||
* @return bool Результат валидации (true - успешно)
|
||
*
|
||
* Правила валидации:
|
||
* - title: обязательное поле
|
||
*/
|
||
public function insert(array $data): bool
|
||
{
|
||
$rules = [
|
||
'title' => [
|
||
'required' // Поле title обязательно для заполнения
|
||
],
|
||
];
|
||
|
||
// Сообщения об ошибках (можно кастомизировать)
|
||
$messages = [];
|
||
|
||
// Вызов базового метода валидации из трейта
|
||
return $this->validate($data, $rules, $messages);
|
||
}
|
||
|
||
/**
|
||
* Валидация данных для получения задачи по ID
|
||
*
|
||
* @param array $data Входные данные
|
||
* @return bool Результат валидации
|
||
*
|
||
* Правила валидации:
|
||
* - id: обязательное поле
|
||
*/
|
||
public function getById(array $data): bool
|
||
{
|
||
$rules = [
|
||
'id' => [
|
||
'required' // Поле id обязательно для заполнения
|
||
],
|
||
];
|
||
|
||
$messages = [];
|
||
|
||
return $this->validate($data, $rules, $messages);
|
||
}
|
||
|
||
/**
|
||
* Валидация данных для получения списка задач
|
||
*
|
||
* @param array $data Входные данные
|
||
* @return bool Результат валидации
|
||
*
|
||
* Правила валидации:
|
||
* - limit: обязательное поле (ограничение выборки)
|
||
* - offset: обязательное поле (смещение в выборке)
|
||
*/
|
||
public function getList(array $data): bool
|
||
{
|
||
$rules = [
|
||
'limit' => [
|
||
'required' // Параметр limit обязателен для пагинации
|
||
],
|
||
'offset' => [
|
||
'required' // Параметр offset обязателен для пагинации
|
||
],
|
||
];
|
||
|
||
$messages = [];
|
||
|
||
return $this->validate($data, $rules, $messages);
|
||
}
|
||
}
|