CoreApi: one more trait, for CoreApi functionality
This commit is contained in:
parent
e88c13663f
commit
dc6ec2a41d
|
@ -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…
Reference in New Issue