Add professional PHPDoc (summary + @param/@return) to the remaining public methods that had none or only partial coverage: GraphController's actions, ContributionStore's accessors, SvgRenderer's render() and private helpers (with concrete array-shape annotations), ProbeTrait, ProviderHealthChecker, ProviderStatus, and the Contribution entity. Also adds the matching @return shapes on SvgRendererTest's data providers.
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace GitContributionGraph\Service\Provider;
|
|
|
|
/** Result of probing a single provider, as reported by the /health endpoint. */
|
|
final class ProviderStatus
|
|
{
|
|
/**
|
|
* @param string $name provider identifier, e.g. "github"
|
|
* @param ProviderStatusType $status overall outcome of the probe
|
|
* @param ?ProviderErrorCode $error classified error code, set only when $status is Error
|
|
* @param ?string $message human-readable error detail, set only when $status is Error
|
|
*/
|
|
public function __construct(
|
|
public readonly string $name,
|
|
public readonly ProviderStatusType $status,
|
|
public readonly ?ProviderErrorCode $error = null,
|
|
public readonly ?string $message = null,
|
|
) {}
|
|
|
|
/**
|
|
* Converts to the array shape used in the /health JSON response, omitting error/message when unset.
|
|
*
|
|
* @return array<string, string>
|
|
*/
|
|
public function toArray(): array
|
|
{
|
|
$data = ['status' => $this->status->value];
|
|
if ($this->error !== null) {
|
|
$data['error'] = $this->error->value;
|
|
}
|
|
if ($this->message !== null) {
|
|
$data['message'] = $this->message;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
}
|