diff --git a/src/ApiResource/PontBasculeHealthCheck.php b/src/ApiResource/PontBasculeHealthCheck.php new file mode 100644 index 0000000..40fcd29 --- /dev/null +++ b/src/ApiResource/PontBasculeHealthCheck.php @@ -0,0 +1,45 @@ + ['pont_bascule:health:read']], + provider: PontBasculeHealthProvider::class, + ), + ], +)] +final class PontBasculeHealthCheck +{ + #[Groups(['pont_bascule:health:read'])] + public bool $healthy = false; + + #[Groups(['pont_bascule:health:read'])] + public bool $ok = false; + + #[Groups(['pont_bascule:health:read'])] + public bool $busy = false; + + #[Groups(['pont_bascule:health:read'])] + public bool $portConnected = false; + + #[Groups(['pont_bascule:health:read'])] + public ?string $portError = null; + + #[Groups(['pont_bascule:health:read'])] + public ?string $hostname = null; +} diff --git a/src/State/PontBasculeHealthProvider.php b/src/State/PontBasculeHealthProvider.php new file mode 100644 index 0000000..4675ad6 --- /dev/null +++ b/src/State/PontBasculeHealthProvider.php @@ -0,0 +1,32 @@ +pontBasculeService->checkHealth(); + + $resource = new PontBasculeHealthCheck(); + $resource->healthy = $health->isHealthy(); + $resource->ok = $health->isOk(); + $resource->busy = $health->isBusy(); + $resource->portConnected = $health->isPortConnected(); + $resource->portError = $health->getPortError(); + $resource->hostname = $health->getHostname(); + + return $resource; + } +}