1
+ <?php
2
+
3
+ namespace c7v \dadata ;
4
+
5
+ use GuzzleHttp \Client ;
6
+ use GuzzleHttp \RequestOptions ;
7
+
8
+ final class Suggestions
9
+ {
10
+ /**
11
+ * @var Client Http client.
12
+ */
13
+ private Client $ _httpClient ;
14
+
15
+ /**
16
+ * @var array Http options.
17
+ */
18
+ private array $ _httpOptions ;
19
+
20
+ /**
21
+ * @var string Токен доступа к API DaData.Ru
22
+ */
23
+ private string $ _accessToken ;
24
+
25
+ /**
26
+ * @param string $accessToken Токен доступа к API DaData.Ru
27
+ */
28
+ public function __construct (string $ accessToken , int $ timeOut = 60 )
29
+ {
30
+ /** @var string _accessToken */
31
+ $ this ->_accessToken = $ accessToken ;
32
+
33
+ $ this ->_httpClient = new Client ([
34
+ 'base_uri ' => 'https://suggestions.dadata.ru/suggestions/api/ ' ,
35
+ 'timeout ' => $ timeOut ,
36
+ ]);
37
+
38
+ $ this ->_httpOptions = [
39
+ RequestOptions::HEADERS => [
40
+ 'Authorization ' => 'Token ' . $ this ->_accessToken
41
+ ],
42
+ ];
43
+ }
44
+
45
+ /**
46
+ * Данный метод поможет переопределить access token.
47
+ *
48
+ * @param string $accessToken Токен доступа к API DaData.Ru
49
+ * @return $this
50
+ */
51
+ public function reSetAccessToken (string $ accessToken ): Suggestions
52
+ {
53
+ $ this ->_accessToken = $ accessToken ;
54
+
55
+ $ this ->_httpOptions = [
56
+ RequestOptions::HEADERS => [
57
+ 'Authorization ' => 'Token ' . $ this ->_accessToken
58
+ ],
59
+ ];
60
+ return $ this ;
61
+ }
62
+
63
+ /**
64
+ * Получить данные по ИНН.
65
+ * @return FindByIdParty
66
+ */
67
+ public function requesterFindByIdParty (string $ inn ): FindByIdParty
68
+ {
69
+ $ findById = new FindByIdParty ($ inn );
70
+
71
+ $ findById ::setHttpClient ($ this ->_httpClient );
72
+ $ findById ::setHttpOptions ($ this ->_httpOptions );
73
+
74
+ return $ findById ;
75
+ }
76
+
77
+ public function requesterFindByIdBank (string $ query , string $ kpp = null ): FindByIdBank
78
+ {
79
+ $ findById = new FindByIdBank ($ query , $ kpp );
80
+
81
+ $ findById ::setHttpClient ($ this ->_httpClient );
82
+ $ findById ::setHttpOptions ($ this ->_httpOptions );
83
+
84
+ return $ findById ;
85
+ }
86
+
87
+ public function requesterFindByIdFnsUnit (int $ query ): FindByIdFnsUnit
88
+ {
89
+ $ findById = new FindByIdFnsUnit ($ query );
90
+
91
+ $ findById ::setHttpClient ($ this ->_httpClient );
92
+ $ findById ::setHttpOptions ($ this ->_httpOptions );
93
+
94
+ return $ findById ;
95
+ }
96
+ }
0 commit comments