Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Xentral\Components\ScanbotApi\Client;
|
||||
|
||||
use Xentral\Components\ScanbotApi\Exception\RuntimeException;
|
||||
|
||||
class ScanbotApiRegistrationClient
|
||||
{
|
||||
/** @var string $apiUrl */
|
||||
private $apiUrl;
|
||||
|
||||
/** @var string $clientId ClientID von Xentral bei freigeist (ist gleich für alle Xentral-Kunden) */
|
||||
private $clientId;
|
||||
|
||||
/**
|
||||
* @param string $apiUrl
|
||||
* @param string $clientId
|
||||
*/
|
||||
public function __construct(string $apiUrl, string $clientId)
|
||||
{
|
||||
if (empty($apiUrl)) {
|
||||
throw new RuntimeException('ApiURL can not be empty.');
|
||||
}
|
||||
if (empty($clientId)) {
|
||||
throw new RuntimeException('ClientID can not be empty.');
|
||||
}
|
||||
$this->apiUrl = $apiUrl;
|
||||
$this->clientId = $clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $companyMail Pro Mailadresse kann nur ein ApiKey registriert werden
|
||||
* @param string $companyName
|
||||
*
|
||||
* @throws RuntimeException
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function register(string $companyMail, string $companyName): array
|
||||
{
|
||||
if (empty($companyMail)) {
|
||||
throw new RuntimeException('Mail parameter can not be empty.');
|
||||
}
|
||||
if (empty($companyName)) {
|
||||
throw new RuntimeException('Name parameter can not be empty.');
|
||||
}
|
||||
|
||||
$url = $this->apiUrl . '/createApiKey?' . sprintf(
|
||||
'email=%s&company=%s&client_id=%s',
|
||||
rawurlencode($companyMail),
|
||||
rawurlencode($companyName),
|
||||
$this->clientId
|
||||
);
|
||||
|
||||
$client = new CurlHttpClient('POST', $url);
|
||||
|
||||
if ($client->HasError()) {
|
||||
throw new RuntimeException(sprintf('Curl-Fehler: %s', $client->GetErrorMessage()));
|
||||
}
|
||||
|
||||
$result = $client->GetContent();
|
||||
$arrayResult = json_decode($result, true);
|
||||
|
||||
if (json_last_error() > 0) {
|
||||
throw new RuntimeException(sprintf('JSON-Fehler: %s', json_last_error_msg()));
|
||||
}
|
||||
|
||||
if (isset($arrayResult['error'])) {
|
||||
throw new RuntimeException(sprintf('API-Fehler: %s', $arrayResult['error']));
|
||||
}
|
||||
|
||||
return $arrayResult;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user