Files
landing-api/app/Rules/PublicHttpsUrl.php
Josep Piguillem d4cf4a66b7
Some checks failed
Tests / lint (push) Has been cancelled
Tests / test (push) Has been cancelled
Tests / test-postgres (push) Has been cancelled
Tests / mcp (push) Has been cancelled
Manage webhooks from the panel
Create one and see its secret once, send a test, change the secret, and read
each delivery with what the other end answered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:44:11 +02:00

26 lines
643 B
PHP

<?php
declare(strict_types=1);
namespace App\Rules;
use App\Support\Webhooks\PublicEndpoint;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
/**
* An HTTPS address whose host resolves only to public addresses — somewhere
* this server may send a request to without reaching into its own network.
*/
class PublicHttpsUrl implements ValidationRule
{
public function validate(string $attribute, mixed $value, Closure $fail): void
{
[, $reason] = app(PublicEndpoint::class)->check((string) $value);
if ($reason !== null) {
$fail(__("rules.media.remote.{$reason}"));
}
}
}