mailwolt/app/Events/CertProvisionProgress.php

43 lines
1.2 KiB
PHP

<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class CertProvisionProgress implements ShouldBroadcastNow
{
public function __construct(
public string $taskKey, // z.B. "issue-cert:mxmail.nexlab.at"
public string $status, // queued|running|done|failed
public string $message = '',
public ?string $mode = null // letsencrypt|self-signed
) {}
public function broadcastOn(): Channel
{
return new Channel('tasks.'.$this->taskKey);
}
public function broadcastAs(): string
{
return 'cert.progress';
}
public function broadcastWith(): array
{
return [
'taskKey' => $this->taskKey,
'status' => $this->status,
'message' => $this->message,
'mode' => $this->mode,
];
}
}