PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.4.9
JetBackup – Backup, Restore & Migrate v1.4.9
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 5 years ago Client.php 5 years ago Config.php 5 years ago Curl.php 5 years ago Helper.php 5 years ago RequestHandler.php 5 years ago Response.php 5 years ago Stream.php 5 years ago
Client.php
701 lines
1 <?php
2
3 namespace BackupGuard;
4 use \SGConfig;
5
6 require_once(dirname(__FILE__).'/Helper.php');
7
8 class Client
9 {
10 private $accessToken = null;
11 private $uploadAccessToken = null;
12
13 public function __construct($accessToken = null, $uploadAccessToken = null)
14 {
15 $this->setAccessToken($accessToken);
16 $this->setUploadAccessToken($uploadAccessToken);
17 }
18
19 public function getAccessToken()
20 {
21 return $this->accessToken;
22 }
23
24 public function getUploadAccessToken()
25 {
26 return $this->uploadAccessToken;
27 }
28
29 public function setAccessToken($accessToken)
30 {
31 $this->accessToken = $accessToken;
32 }
33
34 public function setUploadAccessToken($uploadAccessToken)
35 {
36 $this->uploadAccessToken = $uploadAccessToken;
37 }
38
39 public function createAccessToken($clientId, $clientSecret, $email, $password)
40 {
41 $response = Helper::sendPostRequest(
42 '/token',
43 array(
44 'grant_type' => 'password',
45 'client_id' => $clientId,
46 'client_secret' => $clientSecret,
47 'email' => $email,
48 'password' => $password
49 )
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 }
156 catch (Exception $e) {
157 return '';
158 }
159
160 return $response->getBodyParam('html');
161 }
162
163 public function validateUrl($url, $productName)
164 {
165 Helper::requiredParam('access_token', $this->getAccessToken());
166 Helper::requiredParam('url', $url);
167 Helper::requiredParam('product', $productName);
168
169 $params = array(
170 'url' => $url,
171 'product' => $productName
172 );
173
174 $response = Helper::sendPostRequest(
175 '/products/validateUrl',
176 $params,
177 array(
178 'access_token' => $this->getAccessToken()
179 )
180 );
181
182 Helper::validateResponse($response);
183
184 return $response->getBodyParam('license');
185 }
186
187 public function getAllUserProducts($productName = '')
188 {
189 Helper::requiredParam('access_token', $this->getAccessToken());
190
191 $params = array();
192
193 if ($productName) {
194 $params['product'] = $productName;
195 }
196
197 $response = Helper::sendGetRequest(
198 '/products',
199 $params,
200 array(
201 'access_token' => $this->getAccessToken()
202 )
203 );
204
205 Helper::validateResponse($response);
206
207 return $response->getBodyParam('products');
208 }
209
210 public function linkUrlToProduct($url, $userProductId)
211 {
212 Helper::requiredParam('access_token', $this->getAccessToken());
213 Helper::requiredParam('url', $url);
214 Helper::requiredParam('product_id', $userProductId);
215
216 $params = array(
217 'url' => $url,
218 'id' => $userProductId
219 );
220
221 $response = Helper::sendPostRequest(
222 '/products/link',
223 $params,
224 array(
225 'access_token' => $this->getAccessToken()
226 )
227 );
228
229 Helper::validateResponse($response);
230
231 return $response->getBodyParam('link_id');
232 }
233
234 //Added by Nerses
235 public function getMerchantOrderId($productName)
236 {
237 Helper::requiredParam('access_token', $this->getAccessToken());
238 Helper::requiredParam('product', $productName);
239
240 $params = array(
241 'product' => $productName
242 );
243
244 $response = Helper::sendGetRequest(
245 '/products/merchant',
246 $params,
247 array(
248 'access_token' => $this->getAccessToken()
249 )
250 );
251
252 Helper::validateResponse($response);
253
254 return $response->getBodyParam('id');
255 }
256
257 public function storeSubscriberInfo($url, $fname, $lname, $email, $priority)
258 {
259 Helper::requiredParam('url', $url);
260 Helper::requiredParam('fname', $fname);
261 Helper::requiredParam('lname', $lname);
262 Helper::requiredParam('email', $email);
263 Helper::requiredParam('priority', $priority);
264
265 $params = array(
266 'url' => $url,
267 'fname' => $fname,
268 'lname' => $lname,
269 'email' => $email,
270 'priority' => $priority,
271 'referrer' => 'wordpress-backup-free'
272 );
273
274 $response = Helper::sendPostRequest(
275 '/products/subscriber',
276 $params
277 );
278
279 Helper::validateResponse($response);
280
281 return $response->getBodyParam('subscriber');
282 }
283
284 public function storeSurveyResult($url, $firstname, $lastname, $email, $response)
285 {
286 Helper::requiredParam('url', $url);
287 Helper::requiredParam('firstname', $firstname);
288 Helper::requiredParam('lastname', $lastname);
289 Helper::requiredParam('email', $email);
290 Helper::requiredParam('response', $response);
291
292 $params = array(
293 'url' => $url,
294 'firstname' => $firstname,
295 'lastname' => $lastname,
296 'email' => $email,
297 'response' => $response,
298 'name' => SG_PRODUCT_IDENTIFIER.'-deactivation'
299 );
300
301 $response = Helper::sendPostRequest(
302 '/products/survey',
303 $params
304 );
305
306 Helper::validateResponse($response);
307
308 return $response->getBodyParam('survey');
309 }
310
311 public function createProfile($profileName, $master = 1, $profileType = 4)
312 {
313 Helper::requiredParam('profile_type', $profileType);
314 Helper::requiredParam('profile_name', $profileName);
315
316 $params = array(
317 'profile_type' => $profileType,
318 'profile_name' => $profileName,
319 'master' => $master
320 );
321
322 $response = Helper::sendPostRequest(
323 '/backups',
324 $params,
325 array(
326 'access_token' => $this->getUploadAccessToken()
327 )
328 );
329
330 Helper::validateResponse($response);
331
332 $profileId = $response->getBodyParam('profile_id');
333 $backupId = $response->getBodyParam('backup_id');
334
335 return array(
336 'profile_id' => $profileId,
337 'backup_id' => $backupId
338 );
339 }
340
341 public function createBackup($profileId, $backupName, $master = 0)
342 {
343 Helper::requiredParam('profile_id', $profileId);
344 Helper::requiredParam('backup_name', $backupName);
345 if (\SGConfig::get('BACKUP_GUARD_CREATE_MASTER')) {
346 $master = 1;
347 SGConfig::set('BACKUP_GUARD_CREATE_MASTER', 0);
348 }
349
350 $params = array(
351 'profile_id' => $profileId,
352 'master' => $master
353 );
354
355 $response = Helper::sendPostRequest(
356 '/backups',
357 $params,
358 array(
359 'access_token' => $this->getUploadAccessToken()
360 )
361 );
362
363 Helper::validateResponse($response);
364
365 $profileId = $response->getBodyParam('profile_id');
366 $backupId = $response->getBodyParam('backup_id');
367
368 return array(
369 'profile_id' => $profileId,
370 'backup_id' => $backupId
371 );
372 }
373
374 public function getBackupChanges($profileId, $files)
375 {
376 Helper::requiredParam('profile_id', $profileId);
377 Helper::requiredParam('files', $files);
378
379 $params = array(
380 'profile_id' => $profileId,
381 'files' => $files
382 );
383
384 $response = Helper::sendPostRequest(
385 '/backups/get_changes',
386 $params
387 );
388
389 Helper::validateResponse($response);
390
391 return $response->getBodyParam('files');
392 }
393
394 public function finalizeBackup($backupId)
395 {
396 Helper::requiredParam('backup_id', $backupId);
397
398 $params = array(
399 'backup_id' => $backupId
400 );
401
402 $response = Helper::sendPostRequest(
403 '/backups/finalize',
404 $params,
405 array(
406 'access_token' => $this->getUploadAccessToken()
407 )
408 );
409
410 Helper::validateResponse($response);
411
412 return;
413 }
414
415 public function getBackupContents($backupId, $root, $recursive)
416 {
417 Helper::requiredParam('backup_id', $backupId);
418
419 $params = array(
420 'backup_id' => $backupId,
421 'root' => $root,
422 'recursive' => $recursive
423 );
424
425 $response = Helper::sendGetRequest(
426 '/backups/ls',
427 $params
428 );
429
430 Helper::validateResponse($response);
431
432 return $response->getBodyParam('files');
433 }
434
435 public function getAllBackups($profileId)
436 {
437 Helper::requiredParam('profile_id', $profileId);
438
439 $response = Helper::sendGetRequest(
440 '/backups/'.$profileId,
441 array(),
442 array(
443 'access_token' => $this->getUploadAccessToken()
444 )
445 );
446
447 Helper::validateResponse($response);
448
449 return $response->getBodyParam('backups');
450 }
451
452 public function createUploadSession($backupId, $data)
453 {
454 Helper::requiredParam('backup_id', $backupId);
455
456 $response = Helper::sendRequest(
457 '/upload/'.$backupId,
458 'PUT',
459 $data,
460 array(
461 'access_token' => $this->getUploadAccessToken()
462 )
463 );
464
465 Helper::validateResponse($response);
466
467 $uploadId = $response->getBodyParam('upload_id');
468 $offset = $response->getBodyParam('offset');
469
470 return array(
471 'upload_id' => $uploadId,
472 'offset' => $offset
473 );
474 }
475
476 public function resumeUploadSession($backupId, $uploadId, $offset, $data)
477 {
478 Helper::requiredParam('backup_id', $backupId);
479 Helper::requiredParam('upload_id', $uploadId);
480 Helper::requiredParam('offset', $offset);
481
482 $response = Helper::sendRequest(
483 '/upload/'.$backupId.'/'.$uploadId.'/'.$offset,
484 'PUT',
485 $data,
486 array(
487 'access_token' => $this->getUploadAccessToken()
488 )
489 );
490
491 Helper::validateResponse($response);
492
493 $uploadId = $response->getBodyParam('upload_id');
494 $offset = $response->getBodyParam('offset');
495
496 return array(
497 'upload_id' => $uploadId,
498 'offset' => $offset
499 );
500 }
501
502 public function finalizeUpload($backupId, $uploadId, $path, $db = 0)
503 {
504 Helper::requiredParam('backup_id', $backupId);
505 Helper::requiredParam('upload_id', $uploadId);
506 Helper::requiredParam('path', $path);
507
508 $params = array(
509 'upload_id' => $uploadId,
510 'path' => $path,
511 'db' => $db
512 );
513
514 $response = Helper::sendPostRequest(
515 '/upload/'.$backupId.'/finalize',
516 $params,
517 array(
518 'access_token' => $this->getUploadAccessToken()
519 )
520 );
521
522 Helper::validateResponse($response);
523
524 return;
525 }
526
527 public function createFolder($backupId, $path)
528 {
529 Helper::requiredParam('backup_id', $backupId);
530 Helper::requiredParam('path', $path);
531
532 $params = array(
533 'backup_id' => $backupId
534 );
535
536 $response = Helper::sendGetRequest(
537 '/files/folder',
538 $params
539 );
540
541 Helper::validateResponse($response);
542
543 return;
544 }
545
546 public function downloadFile($backupId, $path, $offset, $limit)
547 {
548 Helper::requiredParam('backup_id', $backupId);
549 Helper::requiredParam('path', $path);
550 Helper::requiredParam('offset', $offset);
551 Helper::requiredParam('limit', $limit);
552
553 $params = array(
554 'backup_id' => $backupId,
555 'path' => $path,
556 'offset' => $offset,
557 'limit' => $limit
558 );
559
560 $response = Helper::sendPostRequest(
561 '/files',
562 $params,
563 array(
564 'access_token' => $this->getUploadAccessToken()
565 )
566 );
567
568 Helper::validateResponse($response);
569
570 return $response->getBody();
571 }
572
573 public function checkCloudAccount()
574 {
575 Helper::requiredParam('access_token', $this->getAccessToken());
576
577 $response = Helper::sendGetRequest(
578 '/users/cloud',
579 array(),
580 array(
581 'access_token' => $this->getAccessToken()
582 )
583 );
584
585 Helper::validateResponse($response);
586
587 $trial = $response->getBodyParam('trial');
588 $usedStorage = $response->getBodyParam('used_storage');
589 $lastPaymentDate = $response->getBodyParam('last_payment_date');
590 $paymentFrequency = $response->getBodyParam('payment_frequency');
591 $package = $response->getBodyParam('package');
592
593 return array(
594 'trial' => $trial,
595 'usedStorage' => $usedStorage,
596 'lastPaymentDate' => $lastPaymentDate,
597 'paymentFrequency' => $paymentFrequency,
598 'package' => $package
599 );
600 }
601
602 public function checkEmailExists($email)
603 {
604 Helper::requiredParam('email', $email);
605
606 $response = Helper::sendGetRequest(
607 '/users/email/'.$email,
608 array()
609 );
610
611 Helper::validateResponse($response);
612
613 return $response->getBodyParam('found');
614 }
615
616 public function addCloudAccountToUser()
617 {
618 Helper::requiredParam('access_token', $this->getAccessToken());
619
620 $response = Helper::sendPostRequest(
621 '/users/cloud',
622 array(),
623 array(
624 'access_token' => $this->getAccessToken()
625 )
626 );
627
628 Helper::validateResponse($response);
629
630 return;
631 }
632
633 public function createCloudUser($email, $firstname, $lastname)
634 {
635 Helper::requiredParam('email', $email);
636 Helper::requiredParam('firstname', $firstname);
637 Helper::requiredParam('lastname', $lastname);
638
639 $response = Helper::sendPostRequest(
640 '/users',
641 array(
642 'email' => $email,
643 'firstname' => $firstname,
644 'lastname' => $lastname
645 )
646 );
647
648 Helper::validateResponse($response);
649
650 $email = $response->getBodyParam('email');
651 $password = $response->getBodyParam('password');
652
653 return array(
654 'password' => $password,
655 'email' => $email
656 );
657 }
658
659 public function createUploadAccessToken($clientId, $clientSecret, $email, $password, $scope)
660 {
661 $response = Helper::sendPostRequest(
662 '/token',
663 array(
664 'grant_type' => 'password',
665 'scope' => $scope,
666 'client_id' => $clientId,
667 'client_secret' => $clientSecret,
668 'email' => $email,
669 'password' => $password
670 )
671 );
672
673 Helper::validateResponse($response);
674
675 $accessToken = $response->getBodyParam('access_token');
676 $refreshToken = $response->getBodyParam('refresh_token');
677
678 return array(
679 'access_token' => $accessToken,
680 'refresh_token' => $refreshToken
681 );
682 }
683
684 public function getProfiles()
685 {
686 Helper::requiredParam('access_token', $this->getUploadAccessToken());
687
688 $response = Helper::sendGetRequest(
689 '/profiles',
690 array(),
691 array(
692 'access_token' => $this->getUploadAccessToken()
693 )
694 );
695
696 Helper::validateResponse($response);
697
698 return $response->getBodyParam('profiles');
699 }
700 }
701