PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.6.15
JetBackup – Backup, Restore & Migrate v1.6.15
3.1.23.6 3.1.23.5 3.1.23.3 3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / lib / BackupGuard / Client.php
backup / com / lib / BackupGuard Last commit date
Exception 9 years ago Client.php 3 years ago Config.php 9 years ago Curl.php 9 years ago Helper.php 5 years ago RequestHandler.php 9 years ago Response.php 9 years ago Stream.php 9 years ago
Client.php
673 lines
1 <?php
2
3 namespace BackupGuard;
4
5 use SGConfig;
6
7 require_once(dirname(__FILE__) . '/Helper.php');
8
9 class Client
10 {
11 private $_accessToken = null;
12 private $_uploadAccessToken = null;
13
14 public function __construct($accessToken = null, $uploadAccessToken = null)
15 {
16 $this->setAccessToken($accessToken);
17 $this->setUploadAccessToken($uploadAccessToken);
18 }
19
20 public function getAccessToken()
21 {
22 return $this->_accessToken;
23 }
24
25 public function getUploadAccessToken()
26 {
27 return $this->_uploadAccessToken;
28 }
29
30 public function setAccessToken($accessToken)
31 {
32 $this->_accessToken = $accessToken;
33 }
34
35 public function setUploadAccessToken($uploadAccessToken)
36 {
37 $this->_uploadAccessToken = $uploadAccessToken;
38 }
39
40 public function createAccessToken($clientId, $clientSecret, $email, $password)
41 {
42 $response = Helper::sendPostRequest(
43 '/token',
44 array(
45 'grant_type' => 'password',
46 'client_id' => $clientId,
47 'client_secret' => $clientSecret,
48 'email' => $email,
49 'password' => $password
50 )
51 );
52 Helper::validateResponse($response);
53
54 $accessToken = $response->getBodyParam('access_token');
55 $refreshToken = $response->getBodyParam('refresh_token');
56
57 return array(
58 'access_token' => $accessToken,
59 'refresh_token' => $refreshToken
60 );
61 }
62
63 public function refreshAccessToken($clientId, $clientSecret, $refreshToken)
64 {
65 $response = Helper::sendPostRequest(
66 '/token',
67 array(
68 'grant_type' => 'refresh_token',
69 'client_id' => $clientId,
70 'client_secret' => $clientSecret,
71 'refresh_token' => $refreshToken
72 )
73 );
74
75 Helper::validateResponse($response);
76
77 $accessToken = $response->getBodyParam('access_token');
78 $refreshToken = $response->getBodyParam('refresh_token');
79
80 return array(
81 'access_token' => $accessToken,
82 'refresh_token' => $refreshToken
83 );
84 }
85
86 public function getCurrentUser()
87 {
88 Helper::requiredParam('access_token', $this->getAccessToken());
89
90 $response = Helper::sendGetRequest(
91 '/users',
92 array(),
93 array(
94 'access_token' => $this->getAccessToken()
95 )
96 );
97
98 Helper::validateResponse($response);
99
100 return $response->getBody();
101 }
102
103 public function createUser($userInfo)
104 {
105 Helper::requiredParam('access_token', $this->getAccessToken());
106 Helper::requiredParamInArray($userInfo, 'email');
107 Helper::requiredParamInArray($userInfo, 'password');
108 Helper::requiredParamInArray($userInfo, 'firstname');
109 Helper::requiredParamInArray($userInfo, 'lastname');
110
111 $params = array(
112 'email' => $userInfo['email'],
113 'password' => $userInfo['password'],
114 'firstname' => $userInfo['firstname'],
115 'lastname' => $userInfo['lastname']
116 );
117
118 if (!empty($userInfo['package'])) {
119 $params['package'] = $userInfo['package'];
120 }
121
122 $response = Helper::sendPostRequest(
123 '/users',
124 $params,
125 array(
126 'access_token' => $this->getAccessToken()
127 )
128 );
129
130 Helper::validateResponse($response);
131
132 return $response->getBodyParam('user_id');
133 }
134
135 public function getBanner($env, $type, $userType = null)
136 {
137 Helper::requiredParam('environment', $env);
138
139 $params = array(
140 'environment' => $env,
141 'type' => $type
142 );
143
144 if ($userType) {
145 $params['user_type'] = $userType;
146 }
147
148 $response = Helper::sendGetRequest(
149 '/banners',
150 $params
151 );
152
153 try {
154 Helper::validateResponse($response);
155 } catch (Exception $e) {
156 return '';
157 }
158
159 return $response->getBodyParam('html');
160 }
161
162 public function validateUrl($url, $productName)
163 {
164 Helper::requiredParam('access_token', $this->getAccessToken());
165 Helper::requiredParam('url', $url);
166 Helper::requiredParam('product', $productName);
167
168 $params = array(
169 'url' => $url,
170 'product' => $productName
171 );
172
173 $response = Helper::sendPostRequest(
174 '/products/validateUrl',
175 $params,
176 array(
177 'access_token' => $this->getAccessToken()
178 )
179 );
180
181 Helper::validateResponse($response);
182
183 return $response->getBodyParam('license');
184 }
185
186 public function getAllUserProducts($productName = '')
187 {
188 Helper::requiredParam('access_token', $this->getAccessToken());
189
190 $params = array();
191
192 if ($productName) {
193 $params['product'] = $productName;
194 }
195
196 $response = Helper::sendGetRequest(
197 '/products',
198 $params,
199 array(
200 'access_token' => $this->getAccessToken()
201 )
202 );
203
204 Helper::validateResponse($response);
205
206 return $response->getBodyParam('products');
207 }
208
209 public function linkUrlToProduct($url, $userProductId)
210 {
211 Helper::requiredParam('access_token', $this->getAccessToken());
212 Helper::requiredParam('url', $url);
213 Helper::requiredParam('product_id', $userProductId);
214
215 $params = array(
216 'url' => $url,
217 'id' => $userProductId
218 );
219
220 $response = Helper::sendPostRequest(
221 '/products/link',
222 $params,
223 array(
224 'access_token' => $this->getAccessToken()
225 )
226 );
227
228 Helper::validateResponse($response);
229
230 return $response->getBodyParam('link_id');
231 }
232
233 //Added by Nerses
234 public function getMerchantOrderId($productName)
235 {
236 Helper::requiredParam('access_token', $this->getAccessToken());
237 Helper::requiredParam('product', $productName);
238
239 $params = array(
240 'product' => $productName
241 );
242
243 $response = Helper::sendGetRequest(
244 '/products/merchant',
245 $params,
246 array(
247 'access_token' => $this->getAccessToken()
248 )
249 );
250
251 Helper::validateResponse($response);
252
253 return $response->getBodyParam('id');
254 }
255
256 public function storeSubscriberInfo($url, $fname, $lname, $email, $priority)
257 {
258 Helper::requiredParam('url', $url);
259 Helper::requiredParam('fname', $fname);
260 Helper::requiredParam('lname', $lname);
261 Helper::requiredParam('email', $email);
262 Helper::requiredParam('priority', $priority);
263
264 $params = array(
265 'url' => $url,
266 'fname' => $fname,
267 'lname' => $lname,
268 'email' => $email,
269 'priority' => $priority,
270 'referrer' => 'wordpress-backup-free'
271 );
272
273 $response = Helper::sendPostRequest(
274 '/products/subscriber',
275 $params
276 );
277
278 Helper::validateResponse($response);
279
280 return $response->getBodyParam('subscriber');
281 }
282
283 public function createProfile($profileName, $master = 1, $profileType = 4)
284 {
285 Helper::requiredParam('profile_type', $profileType);
286 Helper::requiredParam('profile_name', $profileName);
287
288 $params = array(
289 'profile_type' => $profileType,
290 'profile_name' => $profileName,
291 'master' => $master
292 );
293
294 $response = Helper::sendPostRequest(
295 '/backups',
296 $params,
297 array(
298 'access_token' => $this->getUploadAccessToken()
299 )
300 );
301
302 Helper::validateResponse($response);
303
304 $profileId = $response->getBodyParam('profile_id');
305 $backupId = $response->getBodyParam('backup_id');
306
307 return array(
308 'profile_id' => $profileId,
309 'backup_id' => $backupId
310 );
311 }
312
313 public function createBackup($profileId, $backupName, $master = 0)
314 {
315 Helper::requiredParam('profile_id', $profileId);
316 Helper::requiredParam('backup_name', $backupName);
317 if (\SGConfig::get('BACKUP_GUARD_CREATE_MASTER')) {
318 $master = 1;
319 SGConfig::set('BACKUP_GUARD_CREATE_MASTER', 0);
320 }
321
322 $params = array(
323 'profile_id' => $profileId,
324 'master' => $master
325 );
326
327 $response = Helper::sendPostRequest(
328 '/backups',
329 $params,
330 array(
331 'access_token' => $this->getUploadAccessToken()
332 )
333 );
334
335 Helper::validateResponse($response);
336
337 $profileId = $response->getBodyParam('profile_id');
338 $backupId = $response->getBodyParam('backup_id');
339
340 return array(
341 'profile_id' => $profileId,
342 'backup_id' => $backupId
343 );
344 }
345
346 public function getBackupChanges($profileId, $files)
347 {
348 Helper::requiredParam('profile_id', $profileId);
349 Helper::requiredParam('files', $files);
350
351 $params = array(
352 'profile_id' => $profileId,
353 'files' => $files
354 );
355
356 $response = Helper::sendPostRequest(
357 '/backups/get_changes',
358 $params
359 );
360
361 Helper::validateResponse($response);
362
363 return $response->getBodyParam('files');
364 }
365
366 public function finalizeBackup($backupId)
367 {
368 Helper::requiredParam('backup_id', $backupId);
369
370 $params = array(
371 'backup_id' => $backupId
372 );
373
374 $response = Helper::sendPostRequest(
375 '/backups/finalize',
376 $params,
377 array(
378 'access_token' => $this->getUploadAccessToken()
379 )
380 );
381
382 Helper::validateResponse($response);
383
384 return;
385 }
386
387 public function getBackupContents($backupId, $root, $recursive)
388 {
389 Helper::requiredParam('backup_id', $backupId);
390
391 $params = array(
392 'backup_id' => $backupId,
393 'root' => $root,
394 'recursive' => $recursive
395 );
396
397 $response = Helper::sendGetRequest(
398 '/backups/ls',
399 $params
400 );
401
402 Helper::validateResponse($response);
403
404 return $response->getBodyParam('files');
405 }
406
407 public function getAllBackups($profileId)
408 {
409 Helper::requiredParam('profile_id', $profileId);
410
411 $response = Helper::sendGetRequest(
412 '/backups/' . $profileId,
413 array(),
414 array(
415 'access_token' => $this->getUploadAccessToken()
416 )
417 );
418
419 Helper::validateResponse($response);
420
421 return $response->getBodyParam('backups');
422 }
423
424 public function createUploadSession($backupId, $data)
425 {
426 Helper::requiredParam('backup_id', $backupId);
427
428 $response = Helper::sendRequest(
429 '/upload/' . $backupId,
430 'PUT',
431 $data,
432 array(
433 'access_token' => $this->getUploadAccessToken()
434 )
435 );
436
437 Helper::validateResponse($response);
438
439 $uploadId = $response->getBodyParam('upload_id');
440 $offset = $response->getBodyParam('offset');
441
442 return array(
443 'upload_id' => $uploadId,
444 'offset' => $offset
445 );
446 }
447
448 public function resumeUploadSession($backupId, $uploadId, $offset, $data)
449 {
450 Helper::requiredParam('backup_id', $backupId);
451 Helper::requiredParam('upload_id', $uploadId);
452 Helper::requiredParam('offset', $offset);
453
454 $response = Helper::sendRequest(
455 '/upload/' . $backupId . '/' . $uploadId . '/' . $offset,
456 'PUT',
457 $data,
458 array(
459 'access_token' => $this->getUploadAccessToken()
460 )
461 );
462
463 Helper::validateResponse($response);
464
465 $uploadId = $response->getBodyParam('upload_id');
466 $offset = $response->getBodyParam('offset');
467
468 return array(
469 'upload_id' => $uploadId,
470 'offset' => $offset
471 );
472 }
473
474 public function finalizeUpload($backupId, $uploadId, $path, $db = 0)
475 {
476 Helper::requiredParam('backup_id', $backupId);
477 Helper::requiredParam('upload_id', $uploadId);
478 Helper::requiredParam('path', $path);
479
480 $params = array(
481 'upload_id' => $uploadId,
482 'path' => $path,
483 'db' => $db
484 );
485
486 $response = Helper::sendPostRequest(
487 '/upload/' . $backupId . '/finalize',
488 $params,
489 array(
490 'access_token' => $this->getUploadAccessToken()
491 )
492 );
493
494 Helper::validateResponse($response);
495
496 return;
497 }
498
499 public function createFolder($backupId, $path)
500 {
501 Helper::requiredParam('backup_id', $backupId);
502 Helper::requiredParam('path', $path);
503
504 $params = array(
505 'backup_id' => $backupId
506 );
507
508 $response = Helper::sendGetRequest(
509 '/files/folder',
510 $params
511 );
512
513 Helper::validateResponse($response);
514
515 return;
516 }
517
518 public function downloadFile($backupId, $path, $offset, $limit)
519 {
520 Helper::requiredParam('backup_id', $backupId);
521 Helper::requiredParam('path', $path);
522 Helper::requiredParam('offset', $offset);
523 Helper::requiredParam('limit', $limit);
524
525 $params = array(
526 'backup_id' => $backupId,
527 'path' => $path,
528 'offset' => $offset,
529 'limit' => $limit
530 );
531
532 $response = Helper::sendPostRequest(
533 '/files',
534 $params,
535 array(
536 'access_token' => $this->getUploadAccessToken()
537 )
538 );
539
540 Helper::validateResponse($response);
541
542 return $response->getBody();
543 }
544
545 public function checkCloudAccount()
546 {
547 Helper::requiredParam('access_token', $this->getAccessToken());
548
549 $response = Helper::sendGetRequest(
550 '/users/cloud',
551 array(),
552 array(
553 'access_token' => $this->getAccessToken()
554 )
555 );
556
557 Helper::validateResponse($response);
558
559 $trial = $response->getBodyParam('trial');
560 $usedStorage = $response->getBodyParam('used_storage');
561 $lastPaymentDate = $response->getBodyParam('last_payment_date');
562 $paymentFrequency = $response->getBodyParam('payment_frequency');
563 $package = $response->getBodyParam('package');
564
565 return array(
566 'trial' => $trial,
567 'usedStorage' => $usedStorage,
568 'lastPaymentDate' => $lastPaymentDate,
569 'paymentFrequency' => $paymentFrequency,
570 'package' => $package
571 );
572 }
573
574 public function checkEmailExists($email)
575 {
576 Helper::requiredParam('email', $email);
577
578 $response = Helper::sendGetRequest(
579 '/users/email/' . $email,
580 array()
581 );
582
583 Helper::validateResponse($response);
584
585 return $response->getBodyParam('found');
586 }
587
588 public function addCloudAccountToUser()
589 {
590 Helper::requiredParam('access_token', $this->getAccessToken());
591
592 $response = Helper::sendPostRequest(
593 '/users/cloud',
594 array(),
595 array(
596 'access_token' => $this->getAccessToken()
597 )
598 );
599
600 Helper::validateResponse($response);
601
602 return;
603 }
604
605 public function createCloudUser($email, $firstname, $lastname)
606 {
607 Helper::requiredParam('email', $email);
608 Helper::requiredParam('firstname', $firstname);
609 Helper::requiredParam('lastname', $lastname);
610
611 $response = Helper::sendPostRequest(
612 '/users',
613 array(
614 'email' => $email,
615 'firstname' => $firstname,
616 'lastname' => $lastname
617 )
618 );
619
620 Helper::validateResponse($response);
621
622 $email = $response->getBodyParam('email');
623 $password = $response->getBodyParam('password');
624
625 return array(
626 'password' => $password,
627 'email' => $email
628 );
629 }
630
631 public function createUploadAccessToken($clientId, $clientSecret, $email, $password, $scope)
632 {
633 $response = Helper::sendPostRequest(
634 '/token',
635 array(
636 'grant_type' => 'password',
637 'scope' => $scope,
638 'client_id' => $clientId,
639 'client_secret' => $clientSecret,
640 'email' => $email,
641 'password' => $password
642 )
643 );
644
645 Helper::validateResponse($response);
646
647 $accessToken = $response->getBodyParam('access_token');
648 $refreshToken = $response->getBodyParam('refresh_token');
649
650 return array(
651 'access_token' => $accessToken,
652 'refresh_token' => $refreshToken
653 );
654 }
655
656 public function getProfiles()
657 {
658 Helper::requiredParam('access_token', $this->getUploadAccessToken());
659
660 $response = Helper::sendGetRequest(
661 '/profiles',
662 array(),
663 array(
664 'access_token' => $this->getUploadAccessToken()
665 )
666 );
667
668 Helper::validateResponse($response);
669
670 return $response->getBodyParam('profiles');
671 }
672 }
673