CoreApi: one more trait, for CoreApi functionality

This commit is contained in:
Thomas Gelf 2017-06-14 14:55:26 +02:00
parent e88c13663f
commit dc6ec2a41d
1 changed files with 46 additions and 0 deletions

View 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;
}
}