/** * Adds the correct authentication configuration for a client * * @param Desk\Client $client The client (with configuration) * * @throws InvalidArgumentException If authentication configuration * provided is unknown */ public function addAuthentication(Client &$client) { $authentication = $client->getConfig('authentication'); switch ($authentication) { case 'basic': $client->setAuth($client->getConfig('username'), $client->getConfig('password')); break; case 'oauth': $client->addSubscriber(new OauthPlugin(array('consumer_key' => $client->getConfig('consumer_key'), 'consumer_secret' => $client->getConfig('consumer_secret'), 'token' => $client->getConfig('token'), 'token_secret' => $client->getConfig('token_secret')))); break; default: $value = $client->getConfig('authentication'); throw new InvalidArgumentException("Invalid authentication '{$value}'"); } }