-
Notifications
You must be signed in to change notification settings - Fork 0
/
PCClient.php
101 lines (86 loc) · 1.87 KB
/
PCClient.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
namespace rvkulikov\yii2\pozvonimCom;
use rvkulikov\yii2\pozvonimCom\modules\PCApiCalls;
use yii\base\Component;
use yii\helpers\ArrayHelper;
use yii\httpclient\Client;
/**
* Class PCClient
*
* @package rvkulikov\yii2\pozvonimCom
*
* @author Roman Kulikov <[email protected]>
*/
class PCClient extends Component
{
/**
* @var integer
*/
public $userId;
/**
* @var integer
*/
public $siteId;
/**
* @var string
*/
public $apiKey;
/**
* @var string
*/
public $baseUrl = 'http://api.pozvonim.com/v2u';
/**
* @var string
*/
private $token;
/**
* @var Client
*/
private $httpClient;
/**
* @var PCApiCalls
*/
private $calls;
/**
* @return string
*/
public function getToken()
{
if (!$this->token) {
$request = $this->getHttpClient()->get('auth/token', [
'uid' => $this->userId,
'sign' => md5("{$this->apiKey}uid={$this->userId}"),
]);
$response = $request->send();
$this->token = ArrayHelper::getValue($response->data, 'token');
}
return $this->token;
}
/**
* @return Client
*/
public function getHttpClient()
{
if (!$this->httpClient) {
$this->httpClient = new Client([
'baseUrl' => $this->baseUrl
]);
}
return $this->httpClient;
}
/**
* @return PCApiCalls
*/
public function getCalls()
{
if (!$this->calls) {
$this->calls = new PCApiCalls([
'userId' => $this->userId,
'siteId' => $this->siteId,
'token' => $this->getToken(),
'httpClient' => $this->getHttpClient()
]);
}
return $this->calls;
}
}