Auth   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
wmc 3
eloc 12
c 5
b 0
f 0
dl 0
loc 32
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A exchangeToken() 0 5 1
A basicAuthFlow() 0 4 1
1
<?php
2
3
// Auth.php
4
#################################################
5
##
6
## PHPLicengine
7
##
8
#################################################
9
## Copyright 2009-{current_year} PHPLicengine
10
## 
11
## Licensed under the Apache License, Version 2.0 (the "License");
12
## you may not use this file except in compliance with the License.
13
## You may obtain a copy of the License at
14
##
15
##    http://www.apache.org/licenses/LICENSE-2.0
16
##
17
## Unless required by applicable law or agreed to in writing, software
18
## distributed under the License is distributed on an "AS IS" BASIS,
19
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
## See the License for the specific language governing permissions and
21
## limitations under the License.
22
#################################################
23
24
namespace PHPLicengine\Service;
25
use PHPLicengine\Exception\ResponseException;
26
use PHPLicengine\Exception\CurlException;
27
use PHPLicengine\Api\ApiInterface;
28
29
class Auth {
30
 
31
      private $url;
32
      private $api;      
33
34
      public function __construct(ApiInterface $api, array $config)
35
      {
36
             $this->api = $api;
37
             $this->url = 'https://api-ssl.bitly.com/oauth/access_token';    
38
             $key = base64_encode($config['clientid_username'].":".$config['clientsecret_password']);
39
             $api->setApiKey($key);
40
      }
41
 
42
      /*
43
      Exchanging a Username and Password for an Access Token
44
      https://dev.bitly.com/docs/getting-started/authentication
45
      */
46
      public function exchangeToken(array $params)
47
      {
48
             $params['grant_type'] = 'password';
49
             $result = $this->api->post($this->url, $params);
50
             return json_decode($result->getResponse(), true)['access_token'];
51
      }
52
53
      /*
54
      HTTP Basic Authentication Flow
55
      https://dev.bitly.com/docs/getting-started/authentication
56
      */
57
      public function basicAuthFlow(array $params)
58
      {
59
             $result = $this->api->post($this->url, $params);
60
             return $result->getResponse();
61
      }
62
 
63
}
64