PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.5.3
JetBackup – Backup, Restore & Migrate v1.5.3
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
700 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 Helper::validateResponse($response);
52
53 $accessToken = $response->getBodyParam('access_token');
54 $refreshToken = $response->getBodyParam('refresh_token');
55
56 return array(
57 'access_token' => $accessToken,
58 'refresh_token' => $refreshToken
59 );
60 }
61
62 public function refreshAccessToken($clientId, $clientSecret, $refreshToken)
63 {
64 $response = Helper::sendPostRequest(
65 '/token',
66 array(
67 'grant_type' => 'refresh_token',
68 'client_id' => $clientId,
69 'client_secret' => $clientSecret,
70 'refresh_token' => $refreshToken
71 )
72 );
73
74 Helper::validateResponse($response);
75
76 $accessToken = $response->getBodyParam('access_token');
77 $refreshToken = $response->getBodyParam('refresh_token');
78
79 return array(
80 'access_token' => $accessToken,
81 'refresh_token' => $refreshToken
82 );
83 }
84
85 public function getCurrentUser()
86 {
87 Helper::requiredParam('access_token', $this->getAccessToken());
88
89 $response = Helper::sendGetRequest(
90 '/users',
91 array(),
92 array(
93 'access_token' => $this->getAccessToken()
94 )
95 );
96
97 Helper::validateResponse($response);
98
99 return $response->getBody();
100 }
101
102 public function createUser($userInfo)
103 {
104 Helper::requiredParam('access_token', $this->getAccessToken());
105 Helper::requiredParamInArray($userInfo, 'email');
106 Helper::requiredParamInArray($userInfo, 'password');
107 Helper::requiredParamInArray($userInfo, 'firstname');
108 Helper::requiredParamInArray($userInfo, 'lastname');
109
110 $params = array(
111 'email' => $userInfo['email'],
112 'password' => $userInfo['password'],
113 'firstname' => $userInfo['firstname'],
114 'lastname' => $userInfo['lastname']
115 );
116
117 if (!empty($userInfo['package'])) {
118 $params['package'] = $userInfo['package'];
119 }
120
121 $response = Helper::sendPostRequest(
122 '/users',
123 $params,
124 array(
125 'access_token' => $this->getAccessToken()
126 )
127 );
128
129 Helper::validateResponse($response);
130
131 return $response->getBodyParam('user_id');
132 }
133
134 public function getBanner($env, $type, $userType = null)
135 {
136 Helper::requiredParam('environment', $env);
137
138 $params = array(
139 'environment' => $env,
140 'type' => $type
141 );
142
143 if ($userType) {
144 $params['user_type'] = $userType;
145 }
146
147 $response = Helper::sendGetRequest(
148 '/banners',
149 $params
150 );
151
152 try {
153 Helper::validateResponse($response);
154 }
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 storeSurveyResult($url, $firstname, $lastname, $email, $response)
284 {
285 Helper::requiredParam('url', $url);
286 Helper::requiredParam('firstname', $firstname);
287 Helper::requiredParam('lastname', $lastname);
288 Helper::requiredParam('email', $email);
289 Helper::requiredParam('response', $response);
290
291 $params = array(
292 'url' => $url,
293 'firstname' => $firstname,
294 'lastname' => $lastname,
295 'email' => $email,
296 'response' => $response,
297 'name' => SG_PRODUCT_IDENTIFIER.'-deactivation'
298 );
299
300 $response = Helper::sendPostRequest(
301 '/products/survey',
302 $params
303 );
304
305 Helper::validateResponse($response);
306
307 return $response->getBodyParam('survey');
308 }
309
310 public function createProfile($profileName, $master = 1, $profileType = 4)
311 {
312 Helper::requiredParam('profile_type', $profileType);
313 Helper::requiredParam('profile_name', $profileName);
314
315 $params = array(
316 'profile_type' => $profileType,
317 'profile_name' => $profileName,
318 'master' => $master
319 );
320
321 $response = Helper::sendPostRequest(
322 '/backups',
323 $params,
324 array(
325 'access_token' => $this->getUploadAccessToken()
326 )
327 );
328
329 Helper::validateResponse($response);
330
331 $profileId = $response->getBodyParam('profile_id');
332 $backupId = $response->getBodyParam('backup_id');
333
334 return array(
335 'profile_id' => $profileId,
336 'backup_id' => $backupId
337 );
338 }
339
340 public function createBackup($profileId, $backupName, $master = 0)
341 {
342 Helper::requiredParam('profile_id', $profileId);
343 Helper::requiredParam('backup_name', $backupName);
344 if (\SGConfig::get('BACKUP_GUARD_CREATE_MASTER')) {
345 $master = 1;
346 SGConfig::set('BACKUP_GUARD_CREATE_MASTER', 0);
347 }
348
349 $params = array(
350 'profile_id' => $profileId,
351 'master' => $master
352 );
353
354 $response = Helper::sendPostRequest(
355 '/backups',
356 $params,
357 array(
358 'access_token' => $this->getUploadAccessToken()
359 )
360 );
361
362 Helper::validateResponse($response);
363
364 $profileId = $response->getBodyParam('profile_id');
365 $backupId = $response->getBodyParam('backup_id');
366
367 return array(
368 'profile_id' => $profileId,
369 'backup_id' => $backupId
370 );
371 }
372
373 public function getBackupChanges($profileId, $files)
374 {
375 Helper::requiredParam('profile_id', $profileId);
376 Helper::requiredParam('files', $files);
377
378 $params = array(
379 'profile_id' => $profileId,
380 'files' => $files
381 );
382
383 $response = Helper::sendPostRequest(
384 '/backups/get_changes',
385 $params
386 );
387
388 Helper::validateResponse($response);
389
390 return $response->getBodyParam('files');
391 }
392
393 public function finalizeBackup($backupId)
394 {
395 Helper::requiredParam('backup_id', $backupId);
396
397 $params = array(
398 'backup_id' => $backupId
399 );
400
401 $response = Helper::sendPostRequest(
402 '/backups/finalize',
403 $params,
404 array(
405 'access_token' => $this->getUploadAccessToken()
406 )
407 );
408
409 Helper::validateResponse($response);
410
411 return;
412 }
413
414 public function getBackupContents($backupId, $root, $recursive)
415 {
416 Helper::requiredParam('backup_id', $backupId);
417
418 $params = array(
419 'backup_id' => $backupId,
420 'root' => $root,
421 'recursive' => $recursive
422 );
423
424 $response = Helper::sendGetRequest(
425 '/backups/ls',
426 $params
427 );
428
429 Helper::validateResponse($response);
430
431 return $response->getBodyParam('files');
432 }
433
434 public function getAllBackups($profileId)
435 {
436 Helper::requiredParam('profile_id', $profileId);
437
438 $response = Helper::sendGetRequest(
439 '/backups/'.$profileId,
440 array(),
441 array(
442 'access_token' => $this->getUploadAccessToken()
443 )
444 );
445
446 Helper::validateResponse($response);
447
448 return $response->getBodyParam('backups');
449 }
450
451 public function createUploadSession($backupId, $data)
452 {
453 Helper::requiredParam('backup_id', $backupId);
454
455 $response = Helper::sendRequest(
456 '/upload/'.$backupId,
457 'PUT',
458 $data,
459 array(
460 'access_token' => $this->getUploadAccessToken()
461 )
462 );
463
464 Helper::validateResponse($response);
465
466 $uploadId = $response->getBodyParam('upload_id');
467 $offset = $response->getBodyParam('offset');
468
469 return array(
470 'upload_id' => $uploadId,
471 'offset' => $offset
472 );
473 }
474
475 public function resumeUploadSession($backupId, $uploadId, $offset, $data)
476 {
477 Helper::requiredParam('backup_id', $backupId);
478 Helper::requiredParam('upload_id', $uploadId);
479 Helper::requiredParam('offset', $offset);
480
481 $response = Helper::sendRequest(
482 '/upload/'.$backupId.'/'.$uploadId.'/'.$offset,
483 'PUT',
484 $data,
485 array(
486 'access_token' => $this->getUploadAccessToken()
487 )
488 );
489
490 Helper::validateResponse($response);
491
492 $uploadId = $response->getBodyParam('upload_id');
493 $offset = $response->getBodyParam('offset');
494
495 return array(
496 'upload_id' => $uploadId,
497 'offset' => $offset
498 );
499 }
500
501 public function finalizeUpload($backupId, $uploadId, $path, $db = 0)
502 {
503 Helper::requiredParam('backup_id', $backupId);
504 Helper::requiredParam('upload_id', $uploadId);
505 Helper::requiredParam('path', $path);
506
507 $params = array(
508 'upload_id' => $uploadId,
509 'path' => $path,
510 'db' => $db
511 );
512
513 $response = Helper::sendPostRequest(
514 '/upload/'.$backupId.'/finalize',
515 $params,
516 array(
517 'access_token' => $this->getUploadAccessToken()
518 )
519 );
520
521 Helper::validateResponse($response);
522
523 return;
524 }
525
526 public function createFolder($backupId, $path)
527 {
528 Helper::requiredParam('backup_id', $backupId);
529 Helper::requiredParam('path', $path);
530
531 $params = array(
532 'backup_id' => $backupId
533 );
534
535 $response = Helper::sendGetRequest(
536 '/files/folder',
537 $params
538 );
539
540 Helper::validateResponse($response);
541
542 return;
543 }
544
545 public function downloadFile($backupId, $path, $offset, $limit)
546 {
547 Helper::requiredParam('backup_id', $backupId);
548 Helper::requiredParam('path', $path);
549 Helper::requiredParam('offset', $offset);
550 Helper::requiredParam('limit', $limit);
551
552 $params = array(
553 'backup_id' => $backupId,
554 'path' => $path,
555 'offset' => $offset,
556 'limit' => $limit
557 );
558
559 $response = Helper::sendPostRequest(
560 '/files',
561 $params,
562 array(
563 'access_token' => $this->getUploadAccessToken()
564 )
565 );
566
567 Helper::validateResponse($response);
568
569 return $response->getBody();
570 }
571
572 public function checkCloudAccount()
573 {
574 Helper::requiredParam('access_token', $this->getAccessToken());
575
576 $response = Helper::sendGetRequest(
577 '/users/cloud',
578 array(),
579 array(
580 'access_token' => $this->getAccessToken()
581 )
582 );
583
584 Helper::validateResponse($response);
585
586 $trial = $response->getBodyParam('trial');
587 $usedStorage = $response->getBodyParam('used_storage');
588 $lastPaymentDate = $response->getBodyParam('last_payment_date');
589 $paymentFrequency = $response->getBodyParam('payment_frequency');
590 $package = $response->getBodyParam('package');
591
592 return array(
593 'trial' => $trial,
594 'usedStorage' => $usedStorage,
595 'lastPaymentDate' => $lastPaymentDate,
596 'paymentFrequency' => $paymentFrequency,
597 'package' => $package
598 );
599 }
600
601 public function checkEmailExists($email)
602 {
603 Helper::requiredParam('email', $email);
604
605 $response = Helper::sendGetRequest(
606 '/users/email/'.$email,
607 array()
608 );
609
610 Helper::validateResponse($response);
611
612 return $response->getBodyParam('found');
613 }
614
615 public function addCloudAccountToUser()
616 {
617 Helper::requiredParam('access_token', $this->getAccessToken());
618
619 $response = Helper::sendPostRequest(
620 '/users/cloud',
621 array(),
622 array(
623 'access_token' => $this->getAccessToken()
624 )
625 );
626
627 Helper::validateResponse($response);
628
629 return;
630 }
631
632 public function createCloudUser($email, $firstname, $lastname)
633 {
634 Helper::requiredParam('email', $email);
635 Helper::requiredParam('firstname', $firstname);
636 Helper::requiredParam('lastname', $lastname);
637
638 $response = Helper::sendPostRequest(
639 '/users',
640 array(
641 'email' => $email,
642 'firstname' => $firstname,
643 'lastname' => $lastname
644 )
645 );
646
647 Helper::validateResponse($response);
648
649 $email = $response->getBodyParam('email');
650 $password = $response->getBodyParam('password');
651
652 return array(
653 'password' => $password,
654 'email' => $email
655 );
656 }
657
658 public function createUploadAccessToken($clientId, $clientSecret, $email, $password, $scope)
659 {
660 $response = Helper::sendPostRequest(
661 '/token',
662 array(
663 'grant_type' => 'password',
664 'scope' => $scope,
665 'client_id' => $clientId,
666 'client_secret' => $clientSecret,
667 'email' => $email,
668 'password' => $password
669 )
670 );
671
672 Helper::validateResponse($response);
673
674 $accessToken = $response->getBodyParam('access_token');
675 $refreshToken = $response->getBodyParam('refresh_token');
676
677 return array(
678 'access_token' => $accessToken,
679 'refresh_token' => $refreshToken
680 );
681 }
682
683 public function getProfiles()
684 {
685 Helper::requiredParam('access_token', $this->getUploadAccessToken());
686
687 $response = Helper::sendGetRequest(
688 '/profiles',
689 array(),
690 array(
691 'access_token' => $this->getUploadAccessToken()
692 )
693 );
694
695 Helper::validateResponse($response);
696
697 return $response->getBodyParam('profiles');
698 }
699 }
700