mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
79 lines
2.1 KiB
PHP
79 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Xentral\Modules\Pipedrive\Service;
|
|
|
|
use Xentral\Modules\Pipedrive\Exception\PipedriveClientException;
|
|
use Xentral\Modules\Pipedrive\Exception\PipedriveConfigurationException;
|
|
use Xentral\Modules\Pipedrive\Exception\PipedriveHttpClientException;
|
|
use Xentral\Modules\Pipedrive\Exception\PipedriveMetaException;
|
|
use Xentral\Modules\Pipedrive\Exception\PipedrivePersonPropertyServiceException;
|
|
|
|
final class PipedrivePersonPropertyService
|
|
{
|
|
|
|
/** @var PipedriveClientService $client */
|
|
private $client;
|
|
|
|
/**
|
|
* @param PipedriveClientService $client
|
|
*/
|
|
public function __construct(PipedriveClientService $client)
|
|
{
|
|
$this->client = $client;
|
|
}
|
|
|
|
/**
|
|
* @throws PipedriveClientException
|
|
* @throws PipedriveHttpClientException
|
|
* @throws PipedriveConfigurationException
|
|
* @throws PipedriveMetaException
|
|
*
|
|
* @return PipedriveServerResponseInterface
|
|
*/
|
|
public function getProperties(): PipedriveServerResponseInterface
|
|
{
|
|
return $this->client->read('getPersonFields');
|
|
}
|
|
|
|
/**
|
|
* @param int $id
|
|
*
|
|
* @throws PipedriveClientException
|
|
* @throws PipedriveConfigurationException
|
|
* @throws PipedriveHttpClientException
|
|
* @throws PipedriveMetaException
|
|
*
|
|
* @return PipedriveServerResponseInterface
|
|
*/
|
|
public function getProperty(int $id): PipedriveServerResponseInterface
|
|
{
|
|
return $this->client->read('getOnePersonField', [], [$id]);
|
|
}
|
|
|
|
/**
|
|
* @throws PipedriveClientException
|
|
* @throws PipedriveConfigurationException
|
|
* @throws PipedriveHttpClientException
|
|
* @throws PipedriveMetaException
|
|
* @throws PipedrivePersonPropertyServiceException
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getPdLeadStatus(): array
|
|
{
|
|
$response = $this->getProperty(9039);
|
|
if ($response->getStatusCode() !== 200) {
|
|
throw new PipedrivePersonPropertyServiceException($response->getError());
|
|
}
|
|
|
|
if (($data = $response->getData()) && array_key_exists('options', $data)) {
|
|
return $data['options'];
|
|
}
|
|
|
|
return [];
|
|
}
|
|
|
|
}
|