BackupModule.class.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * @name eolinker ams open source,eolinker开源版本
  4. * @link https://www.eolinker.com/
  5. * @package eolinker
  6. * @author www.eolinker.com 广州银云信息科技有限公司 ©2015-2018
  7. * eoLinker是目前全球领先、国内最大的在线API接口管理平台,提供自动生成API文档、API自动化测试、Mock测试、团队协作等功能,旨在解决由于前后端分离导致的开发效率低下问题。
  8. * 如在使用的过程中有任何问题,欢迎加入用户讨论群进行反馈,我们将会以最快的速度,最好的服务态度为您解决问题。
  9. *
  10. * eoLinker AMS开源版的开源协议遵循Apache License 2.0,如需获取最新的eolinker开源版以及相关资讯,请访问:https://www.eolinker.com/#/os/download
  11. *
  12. * 官方网站:https://www.eolinker.com/
  13. * 官方博客以及社区:http://blog.eolinker.com/
  14. * 使用教程以及帮助:http://help.eolinker.com/
  15. * 商务合作邮箱:market@eolinker.com
  16. * 用户讨论QQ群:284421832
  17. */
  18. class BackupModule
  19. {
  20. /**
  21. * 备份项目
  22. * @param $user_name
  23. * @param $user_password
  24. * @param $project_id
  25. * @param $verify_code
  26. * @return bool
  27. */
  28. public function backupProject(&$user_name, &$user_password, &$project_id, &$verify_code)
  29. {
  30. $project_dao = new ProjectDao();
  31. if (!$project_dao->checkProjectPermission($project_id, $_SESSION['userID'])) {
  32. return -1;
  33. }
  34. $login_url = 'https://api.eolinker.com/common/Guest/login';
  35. $backup_url = 'https://api.eolinker.com/apiManagement/Import/importEoapi';
  36. $referer_url = 'https://api.eolinker.com/openSource';
  37. $proxy = new ProxyModule();
  38. $headers = array("Referer: $referer_url");
  39. $params = array('loginCall' => $user_name, 'loginPassword' => $user_password, 'verifyCode' => $verify_code);
  40. $response = $proxy->proxyToDesURL('POST', $login_url, $headers, $params);
  41. $body = json_decode($response['testResult']['body'], TRUE);
  42. if ($body && $body['statusCode']) {
  43. if ($body['statusCode'] == '000000') {
  44. $cookie = "verifyCode=$verify_code; ";
  45. $headers = $response['testResult']['headers'];
  46. foreach ($headers as $header) {
  47. if ($header['key'] == 'Set-Cookie') {
  48. $cookie = $cookie . $header['value'] . ';';
  49. }
  50. }
  51. $headers = array("Cookie: $cookie", "Referer: $referer_url");
  52. $dao = new BackupDao();
  53. $data = $dao->getProjectBackupData($project_id);
  54. $params = array('data' => json_encode($data));
  55. $response = $proxy->proxyToDesURL('POST', $backup_url, $headers, $params);
  56. $body = json_decode($response['testResult']['body'], TRUE);
  57. if ($body && $body['statusCode'] == '000000') {
  58. return TRUE;
  59. } else {
  60. return -6;
  61. }
  62. } elseif ($body['statusCode'] == '120001') {
  63. return -3;
  64. } elseif ($body['statusCode'] == '120003') {
  65. return -4;
  66. } else {
  67. return -5;
  68. }
  69. } else {
  70. return -2;
  71. }
  72. }
  73. }