Files
rkm-conectasus-ci-sandbox/api/app/Rules/CnsTermoValido.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

61 lines
1.2 KiB
PHP

<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Str;
use App\Models\Cns\TermoInvalido;
class CnsTermoValido implements Rule
{
private $options;
public function __construct(array $options = [])
{
$this->options = $options;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$value = ' ' . trim($value) . ' ';
$valid = true;
foreach (TermoInvalido::pluck('descricao') as $termo) {
if (str_contains($value, " {$termo} ")) {
$valid = false;
break;
}
}
return $valid;
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
if (array_key_exists('message', $this->options)) {
return $this->options['message'];
}
$attribute = array_key_exists('attribute', $this->options)
? $this->options['attribute'] : ':attribute';
return "{$attribute} possui um termo inválido.";
}
}