-
Reiter, Christoph authored
We check that at least one person in LDAP has the specified attribute, or we error out.
Reiter, Christoph authoredWe check that at least one person in LDAP has the specified attribute, or we error out.
HealthCheck.php 1.25 KiB
<?php
declare(strict_types=1);
namespace Dbp\Relay\BasePersonConnectorLdapBundle\Service;
use Dbp\Relay\CoreBundle\HealthCheck\CheckInterface;
use Dbp\Relay\CoreBundle\HealthCheck\CheckOptions;
use Dbp\Relay\CoreBundle\HealthCheck\CheckResult;
class HealthCheck implements CheckInterface
{
private $ldap;
public function __construct(LDAPApi $ldap)
{
$this->ldap = $ldap;
}
public function getName(): string
{
return 'base-person-connector-ldap';
}
private function checkMethod(string $description, callable $func): CheckResult
{
$result = new CheckResult($description);
try {
$func();
} catch (\Throwable $e) {
$result->set(CheckResult::STATUS_FAILURE, $e->getMessage(), ['exception' => $e]);
return $result;
}
$result->set(CheckResult::STATUS_SUCCESS);
return $result;
}
public function check(CheckOptions $options): array
{
$results = [];
$results[] = $this->checkMethod('Check if we can connect to the LDAP server', [$this->ldap, 'checkConnection']);
$results[] = $this->checkMethod('Check if all attributes are available', [$this->ldap, 'checkAttributes']);
return $results;
}
}