1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
<?php
/**
* Created by PhpStorm.
* Copyright: Bertschi AG, 2015
* User: jbaumann
* File: ConfigFacade.php
* Date: 23.12.2015
* Time: 08:34
*/
namespace JRA\Facades;
use JRA\Config\ARSAnnatech;
use JRA\Config\Authenticate;
use JRA\Config\Server;
use JRA\Config\Version;
use JRA\Exceptions\AuthenticationConfigException;
use JRA\Exceptions\ServerConfigException;
use JRA\Exceptions\TokenConfigException;
use JRA\Exceptions\UserCredentialsConfigException;
use JRA\Interfaces\ConfigInterface;
class ConfigFacade implements ConfigInterface
{
/**
* The config for all ars requests.
*
* @var ARSAnnatech
*/
private $_arsAnnatechConfig;
/**
* The config for authenticate against the cAPI.
*
* @var Authenticate
*/
private $_authenticateConfig;
/**
* The config which provides the server configuration for requesting.
*
* @var Server
*/
private $_serverConfig;
/**
* The config which contains the version information of the cAPI.
*
* @var Version
*/
private $_versionConfig;
/**
* ConfigFacade constructor.
*
* @param ARSAnnatech $pARSAnnatech The config for all ars requests.
* @param Authenticate $pAuthenticate The config for authenticate against the cAPI.
* @param Server $pServer The config which provides the server configuration for requesting.
* @param Version $pVersion The config which contains the version information of the cAPI.
*/
public function __construct(ARSAnnatech $pARSAnnatech, Authenticate $pAuthenticate, Server $pServer, Version $pVersion)
{
$this->_arsAnnatechConfig = $pARSAnnatech;
$this->_authenticateConfig = $pAuthenticate;
$this->_serverConfig = $pServer;
$this->_versionConfig = $pVersion;
}
/**
* Sets the token for authentication.
*
* @param string $pToken The token which should be set.
* @throws TokenConfigException Throws an exception if something went wrong.
*/
public function setToken($pToken)
{
$this->_authenticateConfig->setToken($pToken);
}
/**
* Sets the user credentials for authentication.
*
* @param string $pUsername The username which should be set.
* @param string $pPassword The password which should be set.
* @throws UserCredentialsConfigException Throws an exception if something went wrong.
*/
public function setCredentials($pUsername, $pPassword)
{
$this->_authenticateConfig->setCredentials($pUsername, $pPassword);
}
/**
* Returns the authentication method.
*
* @return int The id of the authentication method.
*/
public function getAuthenticationMethod()
{
return $this->_authenticateConfig->getAuthenticationMethod();
}
/**
* Return the authentication credentials for the selected authentication method.
*
* @return array|string Returns an array with the user credentials or returns an string with the token.
* @throws TokenConfigException Throws this exception if something went wrong with token returning.
* @throws UserCredentialsConfigException Throws this exception if something went wrong with user credentials returning.
* @throws AuthenticationConfigException Throws this exception if something went wrong with the authentication config itself.
*/
public function getAuthenticationCredentials()
{
return $this->_authenticateConfig->getAuthenticationCredentials();
}
/**
* Sets the session id of the current logged in session.
*
* @param string $pSession The session which should be stored.
*/
public function setSession($pSession)
{
$this->_authenticateConfig->setSession($pSession);
}
/**
* Return the session id.
*
* @return string The session id of the current logged in session.
*/
public function getSession()
{
return $this->_authenticateConfig->getSession();
}
/**
* Sets the url which should be used for requesting the cAPI.
*
* @param string $pUrl The url which should be set.
* @throws ServerConfigException Throws an exception if the url is invalid.
*/
public function setUrl($pUrl)
{
$this->_serverConfig->setUrl($pUrl);
}
/**
* Returns the optimized requesting url.
*
* @return string The optimized requesting url.
* @throws ServerConfigException Throws an exception if something went wrong on returning.
*/
public function getRestAPIUrl()
{
return $this->_serverConfig->getRestAPIUrl();
}
/**
* Checks if auto login is either on or off.
*
* @return bool Returns true if auto login if on, false otherwise.
*/
public function isAutoLoginOn()
{
return $this->_authenticateConfig->isAutoLoginOn();
}
}