Files
panel/app/Validation/ValidateAddressType.php
Eric Wang c2d6c03d25 idk
2023-09-02 03:51:16 +00:00

30 lines
1018 B
PHP

<?php
namespace Convoy\Validation;
use Illuminate\Validation\Validator;
use Convoy\Enums\Network\AddressType;
class ValidateAddressType
{
public function __construct(private AddressType $addressType, private array $fields) {}
public function __invoke(Validator $validator)
{
$data = $validator->validated();
if ($this->addressType === AddressType::IPV4) {
foreach ($this->fields as $field) {
if (! filter_var($data[$field], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
$validator->errors()->add('address', __('validation.ipv4', ['attribute' => $field]));
}
}
} elseif ($this->addressType === AddressType::IPV6) {
foreach ($this->fields as $field) {
if (! filter_var($data[$field], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
$validator->errors()->add('address', __('validation.ipv6', ['attribute' => $field]));
}
}
}
}
}