diff --git a/src/BaseRequester.php b/src/BaseRequester.php index eb7cf89..847e837 100644 --- a/src/BaseRequester.php +++ b/src/BaseRequester.php @@ -4,6 +4,9 @@ use GuzzleHttp\Client; +/** + * @author Артём Соколовский + */ abstract class BaseRequester { /** diff --git a/src/Cleaner.php b/src/Cleaner.php index be6605b..8a896a0 100644 --- a/src/Cleaner.php +++ b/src/Cleaner.php @@ -8,26 +8,26 @@ use GuzzleHttp\Client; use GuzzleHttp\RequestOptions; +/** + * Класс для постройки запросов к стандартизацию. + * + * @author Артём Соколовский + */ final class Cleaner { - /** - * @var Client Http client. - */ + /** @var string Базовая URL для обращения. */ + const BASE_URL = 'https://cleaner.dadata.ru/api/v1/clean/'; + + /** @var Client Http client. */ private Client $_httpClient; - /** - * @var array Http options. - */ + /** @var array Http options. */ private array $_httpOptions; - /** - * @var string Токен доступа к API DaData.Ru - */ + /** @var string Токен доступа к API DaData.Ru */ private string $_accessToken; - /** - * @var string Секрет от API DaData.Ru - */ + /** @var string Секрет от API DaData.Ru */ private string $_secret; /** @@ -42,7 +42,7 @@ public function __construct(string $accessToken, string $secret, int $timeOut = $this->_secret = $secret; $this->_httpClient = new Client([ - 'base_uri' => 'https://cleaner.dadata.ru/api/v1/clean/', + 'base_uri' => self::BASE_URL, 'timeout' => $timeOut, ]); @@ -73,6 +73,11 @@ public function reSetAccessToken(string $accessToken, string $secret): self return $this; } + /** + * Разбор адреса из строки «стандартизация» + * @param string $query Адрес. + * @return AddressRequester + */ public function requesterAddress(string $query): AddressRequester { $address = new AddressRequester($query); @@ -83,6 +88,11 @@ public function requesterAddress(string $query): AddressRequester return $address; } + /** + * Разбор ФИО из строки «стандартизация» + * @param string $query ФИО. + * @return NameRequester + */ public function requesterName(string $query): NameRequester { $name = new NameRequester($query); @@ -93,6 +103,12 @@ public function requesterName(string $query): NameRequester return $name; } + /** + * Проверяет телефон по справочнику Россвязи, определяет оператора с учётом переноса номеров, заполняет страну, + * город и часовой пояс. + * @param string $query Телефон. + * @return PhoneRequester + */ public function requesterPhone(string $query): PhoneRequester { $name = new PhoneRequester($query); diff --git a/src/Suggestions.php b/src/Suggestions.php index 42a6662..9189dfc 100644 --- a/src/Suggestions.php +++ b/src/Suggestions.php @@ -9,33 +9,36 @@ use c7v\dadata\requesters\FindByIdPartyRequester; use c7v\dadata\requesters\FindByIdBankRequester; +/** + * Класс для постройки запросов для получения информации. + * + * @author Артём Соколовский + */ final class Suggestions { - /** - * @var Client Http client. - */ + /** @var string Базовая URL для обращения. */ + const BASE_URL = 'https://suggestions.dadata.ru/suggestions/api/'; + + /** @var Client Http client. */ private Client $_httpClient; - /** - * @var array Http options. - */ + /** @var array Http options. */ private array $_httpOptions; - /** - * @var string Токен доступа к API DaData.Ru - */ + /** @var string Токен доступа к API DaData.Ru */ private string $_accessToken; - /** - * @param string $accessToken Токен доступа к API DaData.Ru - */ + /** + * @param string $accessToken Токен доступа к API DaData.Ru + * @param int $timeOut TimeOut для запроса. + */ public function __construct(string $accessToken, int $timeOut = 60) { /** @var string _accessToken */ $this->_accessToken = $accessToken; $this->_httpClient = new Client([ - 'base_uri' => 'https://suggestions.dadata.ru/suggestions/api/', + 'base_uri' => self::BASE_URL, 'timeout' => $timeOut, ]); @@ -55,7 +58,6 @@ public function __construct(string $accessToken, int $timeOut = 60) public function reSetAccessToken(string $accessToken): self { $this->_accessToken = $accessToken; - $this->_httpOptions = [ RequestOptions::HEADERS => [ 'Authorization' => 'Token ' . $this->_accessToken @@ -64,10 +66,11 @@ public function reSetAccessToken(string $accessToken): self return $this; } - /** - * Получить данные по ИНН. - * @return FindByIdPartyRequester - */ + /** + * Получить данные по ИНН. + * @param string $inn ИНН компании или индивидуального предпринимателя. + * @return FindByIdPartyRequester + */ public function requesterFindByIdParty(string $inn): FindByIdPartyRequester { $findById = new FindByIdPartyRequester($inn); @@ -78,6 +81,12 @@ public function requesterFindByIdParty(string $inn): FindByIdPartyRequester return $findById; } + /** + * Банк по БИК, SWIFT, ИНН, рег. номеру + * @param string $query БИК, SWIFT, ИНН и рег. номер банка + * @param string|null $kpp Дополнительно можно указать КПП если параметр $query имеет значение ИНН. + * @return FindByIdBankRequester + */ public function requesterFindByIdBank(string $query, string $kpp = null): FindByIdBankRequester { $findById = new FindByIdBankRequester($query, $kpp); @@ -88,7 +97,12 @@ public function requesterFindByIdBank(string $query, string $kpp = null): FindBy return $findById; } - public function requesterFindByIdFnsUnit(int $query): FindByIdFnsUnitRequester + /** + * Справочник инспекций Налоговой службы. + * @param string $query Поиск работает по полям: code, name_short и address. + * @return FindByIdFnsUnitRequester + */ + public function requesterFindByIdFnsUnit(string $query): FindByIdFnsUnitRequester { $findById = new FindByIdFnsUnitRequester($query); @@ -98,6 +112,11 @@ public function requesterFindByIdFnsUnit(int $query): FindByIdFnsUnitRequester return $findById; } + /** + * Отделения Почты России. + * @param string $query Поиск работает по полям: postal_code и address_str. + * @return FindByAddressPostalUnitRequester + */ public function requesterFindByAddressPostalUnit(string $query): FindByAddressPostalUnitRequester { $findById = new FindByAddressPostalUnitRequester($query); diff --git a/src/helpers/StyleData.php b/src/helpers/StyleData.php index a6f6de3..528832b 100644 --- a/src/helpers/StyleData.php +++ b/src/helpers/StyleData.php @@ -2,8 +2,15 @@ namespace c7v\dadata\helpers; +/** + * @author Артём Соколовский + */ class StyleData { + /** + * @param string $string Название компании. + * @return string + */ public static function normalQuotes(string $string): string { return preg_replace([ @@ -15,17 +22,30 @@ public static function normalQuotes(string $string): string ], $string); } + /** + * @param int $time Метка времени. + * @return string + */ public static function normalDate(int $time): string { return date('d.m.Y', substr($time,0,-3)); } - public static function normalManagementPost(string $post, $charset = "utf-8"): string + /** + * @param string $post Должность + * @param string $charset Кодировка строки + * @return string + */ + public static function normalManagementPost(string $post, string $charset = "utf-8"): string { $post = mb_strtolower($post, 'utf-8'); return mb_strtoupper(mb_substr($post, 0, 1, $charset), $charset).mb_substr($post, 1, mb_strlen($post, $charset)-1, $charset); } + /** + * @param string $name ФИО строкой. + * @return array + */ public static function explodeName(string $name): array { $array = explode(' ', $name); diff --git a/src/requesters/AddressRequester.php b/src/requesters/AddressRequester.php index 7ec1372..879f717 100644 --- a/src/requesters/AddressRequester.php +++ b/src/requesters/AddressRequester.php @@ -5,17 +5,30 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class AddressRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = 'address'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $query Адрес. + */ public function __construct(string $query) { $this->_data[] = $query; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/FindByAddressPostalUnitRequester.php b/src/requesters/FindByAddressPostalUnitRequester.php index 95f35a1..e5b5c1b 100644 --- a/src/requesters/FindByAddressPostalUnitRequester.php +++ b/src/requesters/FindByAddressPostalUnitRequester.php @@ -5,17 +5,30 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class FindByAddressPostalUnitRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = '4_1/rs/suggest/postal_unit'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $query Поиск работает по полям: postal_code и address_str. + */ public function __construct(string $query) { $this->_data['query'] = $query; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/FindByIdBankRequester.php b/src/requesters/FindByIdBankRequester.php index 61a80be..8851137 100644 --- a/src/requesters/FindByIdBankRequester.php +++ b/src/requesters/FindByIdBankRequester.php @@ -5,12 +5,21 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class FindByIdBankRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = '4_1/rs/findById/bank'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $query БИК, SWIFT, ИНН и рег. номер банка + * @param string|null $kpp Дополнительно можно указать КПП если параметр $query имеет значение ИНН. + */ public function __construct(string $query, string $kpp = null) { $this->_data = []; @@ -20,6 +29,11 @@ public function __construct(string $query, string $kpp = null) } } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/FindByIdFnsUnitRequester.php b/src/requesters/FindByIdFnsUnitRequester.php index 52d7074..b278027 100644 --- a/src/requesters/FindByIdFnsUnitRequester.php +++ b/src/requesters/FindByIdFnsUnitRequester.php @@ -5,17 +5,30 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class FindByIdFnsUnitRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = '4_1/rs/suggest/fns_unit'; + /** @var array Данные для отправки */ private array $_data; - public function __construct(int $query) + /** + * @param string $query Поиск работает по полям: code, name_short и address. + */ + public function __construct(string $query) { $this->_data['query'] = $query; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/FindByIdPartyRequester.php b/src/requesters/FindByIdPartyRequester.php index 101168d..f2ff03d 100644 --- a/src/requesters/FindByIdPartyRequester.php +++ b/src/requesters/FindByIdPartyRequester.php @@ -5,18 +5,31 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class FindByIdPartyRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = '4_1/rs/findById/party'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $inn ИНН компании или индивидуального предпринимателя. + */ public function __construct(string $inn) { $this->_data = []; $this->_data['query'] = $inn; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/NameRequester.php b/src/requesters/NameRequester.php index ed26dbf..f53bee9 100644 --- a/src/requesters/NameRequester.php +++ b/src/requesters/NameRequester.php @@ -5,17 +5,30 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class NameRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = 'name'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $query ФИО. + */ public function __construct(string $query) { $this->_data[] = $query; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [ diff --git a/src/requesters/PhoneRequester.php b/src/requesters/PhoneRequester.php index a98f139..de94996 100644 --- a/src/requesters/PhoneRequester.php +++ b/src/requesters/PhoneRequester.php @@ -5,17 +5,30 @@ use GuzzleHttp\RequestOptions; use c7v\dadata\BaseRequester; +/** + * @author Артём Соколовский + */ class PhoneRequester extends BaseRequester { + /** @var string Имя метода */ const METHOD_URL = 'phone'; + /** @var array Данные для отправки */ private array $_data; + /** + * @param string $query Номер телефона. + */ public function __construct(string $query) { $this->_data[] = $query; } + /** + * Отправка запроса. + * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException + */ public function send(): \Psr\Http\Message\ResponseInterface { return self::$_httpClient->request('POST', self::METHOD_URL, array_merge(self::$_httpOptions, [