exampleapp/modules/Tasks/Application/Validator.php

89 lines
2.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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);
}
}