mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 08:44:11 +02:00
CoreApi: one more trait, for CoreApi functionality
This commit is contained in:
parent
e88c13663f
commit
dc6ec2a41d
46
library/Director/Web/Controller/Extension/CoreApi.php
Normal file
46
library/Director/Web/Controller/Extension/CoreApi.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Icinga\Module\Director\Web\Controller\Extension;
|
||||||
|
|
||||||
|
use Icinga\Module\Director\Objects\IcingaEndpoint;
|
||||||
|
use Icinga\Module\Director\Core\CoreApi as Api;
|
||||||
|
|
||||||
|
trait CoreApi
|
||||||
|
{
|
||||||
|
/** @var Api */
|
||||||
|
private $api;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Api|null
|
||||||
|
*/
|
||||||
|
public function getApiIfAvailable()
|
||||||
|
{
|
||||||
|
if ($this->api === null) {
|
||||||
|
if ($this->db()->hasDeploymentEndpoint()) {
|
||||||
|
$endpoint = $this->db()->getDeploymentEndpoint();
|
||||||
|
$this->api = $endpoint->api();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->api;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $endpointName
|
||||||
|
* @return Api
|
||||||
|
*/
|
||||||
|
public function api($endpointName = null)
|
||||||
|
{
|
||||||
|
if ($this->api === null) {
|
||||||
|
if ($endpointName === null) {
|
||||||
|
$endpoint = $this->db()->getDeploymentEndpoint();
|
||||||
|
} else {
|
||||||
|
$endpoint = IcingaEndpoint::load($endpointName, $this->db());
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->api = $endpoint->api();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->api;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user