Test Failed
Push — master ( fe9d48...979971 )
by PHPLicengine
02:28
created

Bitlink::updateBitlinksByGroup()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 3
rs 10
1
<?php
2
3
// Bitlink.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 Bitlink {
30
 
31
       private $url;
32
       private $api;      
33
      
34
       public function __construct(ApiInterface $api)
35
       {
36
              $this->api = $api;
37
              $this->url = 'https://api-ssl.bitly.com/v4';       
38
       }
39
      
40
       /*
41
      Get Metrics for a Bitlink by referrers by domain
42
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByReferrersByDomains
43
      */
44
       public function getMetricsForBitlinkByReferrersByDomains(string $bitlink, array $params = array()) 
45
       {
46
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/referrers_by_domains', $params);
47
       }
48
      
49
       /*
50
      Get Metrics for a Bitlink by countries
51
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByCountries
52
      */             
53
       public function getMetricsForBitlinkByCountries(string $bitlink, array $params = array()) 
54
       {
55
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/countries', $params);
56
       }
57
58
       /*
59
      Get Clicks for a Bitlink
60
      https://dev.bitly.com/api-reference#getClicksForBitlink
61
      */
62
       public function getClicksForBitlink(string $bitlink, array $params = array()) 
63
       {
64
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/clicks', $params);
65
       }
66
67
       /*
68
      Expand a Bitlink
69
      https://dev.bitly.com/api-reference#expandBitlink
70
      */
71
       public function expandBitlink(array $params) 
72
       {
73
              return $this->api->post($this->url.'/expand', $params);
74
       }
75
      
76
       /*
77
      Get Metrics for a Bitlink by referrers
78
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByReferrers
79
      */
80
       public function getMetricsForBitlinkByReferrers(string $bitlink, array $params = array()) 
81
       {
82
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/referrers', $params);
83
       }
84
      
85
       /*
86
      Create a Bitlink
87
      https://dev.bitly.com/api-reference#createFullBitlink
88
      */
89
       public function createFullBitlink(array $params) 
90
       {
91
              return $this->api->post($this->url.'/bitlinks', $params);
92
       }
93
      
94
       /*
95
      Update a Bitlink
96
      https://dev.bitly.com/api-reference#updateBitlink
97
      */
98
       public function updateBitlink(string $bitlink, array $params) 
99
       {
100
              return $this->api->patch($this->url.'/bitlinks/'.$bitlink, $params);
101
       }
102
103
       /*
104
      Retrieve a Bitlink
105
      https://dev.bitly.com/api-reference#getBitlink
106
      */
107
       public function getBitlink(string $bitlink) 
108
       {
109
              return $this->api->get($this->url.'/bitlinks/'.$bitlink);
110
       }
111
112
       /*
113
      Get Clicks Summary for a Bitlink
114
      https://dev.bitly.com/api-reference#getClicksSummaryForBitlink
115
      */
116
       public function getClicksSummaryForBitlink(string $bitlink, array $params = array()) 
117
       {
118
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/clicks/summary', $params);
119
       }
120
121
       /*
122
      Shorten a Link
123
      https://dev.bitly.com/api-reference#createBitlink
124
      */
125
       public function createBitlink(array $params) 
126
       {
127
              return $this->api->post($this->url.'/shorten', $params);
128
       }
129
130
       /*
131
      Get Metrics for a Bitlink by referring domains
132
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByReferringDomains
133
      */
134
       public function getMetricsForBitlinkByReferringDomains(string $bitlink, array $params = array()) 
135
       {
136
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/referring_domains', $params);
137
       }
138
 
139
       /*
140
      Get a QR Code
141
      https://dev.bitly.com/api-reference#getBitlinkQRCode
142
      */
143
       public function getBitlinkQRCode(string $bitlink) 
144
       {
145
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/qr');
146
       }
147
 
148
       /*
149
      Get Metrics for a Bitlink by City
150
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByCities
151
      */
152
       public function getMetricsForBitlinkByCities(string $bitlink, array $params = array()) 
153
       {
154
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/cities', $params);
155
       }
156
157
       /*
158
      Get Metrics for a Bitlink by Device Type
159
      https://dev.bitly.com/api-reference#getMetricsForBitlinkByDevices
160
      */
161
       public function getMetricsForBitlinkByDevices(string $bitlink, array $params = array()) 
162
       {
163
              return $this->api->get($this->url.'/bitlinks/'.$bitlink.'/devices', $params);
164
       }
165
 
166
       /*
167
      Bulk update bitlinks
168
      https://dev.bitly.com/api-reference#updateBitlinksByGroup
169
      */
170
      public function updateBitlinksByGroup(string $group_guid, array $params = array()) 
171
      {
172
             return $this->api->patch($this->url . '/groups/'.$group_guid.'/bitlinks', $params);
173
      }
174
 
175
}
176