| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace App\Module\OpenAPI\Validations;
- use App\Module\OpenAPI\Validators\WebhookUrlValidator;
- use App\Module\OpenAPI\Validators\WebhookEventsValidator;
- use UCore\ValidationCore;
- /**
- * Webhook创建验证类
- */
- class WebhookCreateValidation extends ValidationCore
- {
- /** @var array|null 处理后的事件列表 */
- public ?array $processedEvents = null;
- /**
- * 验证规则
- */
- public function rules($rules = []): array
- {
- return [
- // 基础字段验证
- ['name', 'required'],
- ['name', 'string', 'min' => 2, 'max' => 100],
- ['url', 'required'],
- ['events', 'required'],
- ['timeout', 'integer', 'min' => 1, 'max' => 300],
- ['retry_count', 'integer', 'min' => 0, 'max' => 10],
- // 业务验证(按顺序执行)
- [
- 'url', new WebhookUrlValidator($this),
- 'msg' => 'Webhook URL无效'
- ],
- [
- 'events', new WebhookEventsValidator($this, ['processedEvents']),
- 'msg' => '事件类型配置无效'
- ],
- ];
- }
- /**
- * 默认值
- */
- public function default(): array
- {
- return [
- 'timeout' => 30,
- 'retry_count' => 3,
- 'status' => 'ACTIVE',
- ];
- }
- }
|