ApiModule.class.php 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133
  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 ApiModule
  19. {
  20. public function __construct()
  21. {
  22. @session_start();
  23. }
  24. /**
  25. * get userType by apiID
  26. * 根据apiID获取项目用户类型
  27. *
  28. * @param $apiID int
  29. * 接口ID
  30. * @return bool
  31. */
  32. public function getUserType(&$apiID)
  33. {
  34. $apiDao = new ApiDao();
  35. $projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID']);
  36. if (empty($projectID)) {
  37. return -1;
  38. }
  39. $dao = new AuthorizationDao();
  40. $result = $dao->getProjectUserType($_SESSION['userID'], $projectID);
  41. if ($result === FALSE) {
  42. return -1;
  43. } else {
  44. return $result;
  45. }
  46. }
  47. /**
  48. * add api
  49. * 添加api
  50. *
  51. * @param $apiName string
  52. * 接口名称
  53. * @param $apiURI string
  54. * 接口地址
  55. * @param $apiProtocol int
  56. * 请求协议 [0/1]=>[HTTP/HTTPS]
  57. * @param $apiSuccessMock string
  58. * 访问成功结果,默认为NULL(default null)
  59. * @param $apiFailureMock string
  60. * 访问失败结果,默认为NULL(default null)
  61. * @param $apiRequestType int
  62. * 请求类型 [0/1/2/3/4/5/6]=>[POST/GET/PUT/DELETE/HEAD/OPTIONS/PATCH]
  63. * @param $apiStatus int
  64. * 接口状态 [0/1/2]=>[启用(using)/维护(maintain)/弃用(abandon)]
  65. * @param $groupID int
  66. * 接口分组ID
  67. * @param $apiHeader string
  68. * 请求头(JSON格式) [{"headerName":"","headerValue":""]
  69. * @param $apiRequestParam string
  70. * 请求参数(JSON格式) [{"paramName":"","paramKey":"","paramType":"","paramLimit":"","paramValue":"","paramNotNull":"","paramValueList":[]}]
  71. * @param $apiResultParam string
  72. * 返回参数(JSON格式) ["paramKey":"","paramName":"","paramNotNull":"","paramValueList":[]]
  73. * @param $starred int
  74. * 是否加星标 [0/1]=>[否(false)/是(true)],默认为0
  75. * @param $apiNoteType int
  76. * 备注类型 [0/1]=>[富文本(richText)/markdown],默认为0(default 0)
  77. * @param $apiNoteRaw string
  78. * 备注(markdown),默认为NULL(default null)
  79. * @param $apiNote string
  80. * 备注(富文本),默认为NULL(default null)
  81. * @param $apiRequestParamType int
  82. * 请求参数类型 [0/1]=>[表单类型(form-data)/源数据类型(raw)],默认为0(default 0)
  83. * @param $apiRequestRaw string
  84. * 请求参数源数据,默认为NULL(default null)
  85. * @param $mockRule array mock规则
  86. * @param $mockResult string mock结果
  87. * @param $mockConfig array mock配置
  88. * @param $success_status_code
  89. * @param $failure_status_code
  90. * @param $before_inject
  91. * @param $after_inject
  92. * @return int|bool
  93. */
  94. public function addApi(&$apiName, &$apiURI, &$apiProtocol, &$apiSuccessMock, &$apiFailureMock, &$apiRequestType, &$apiStatus, &$groupID, &$apiHeader, &$apiRequestParam, &$apiResultParam, &$starred, &$apiNoteType, &$apiNoteRaw, &$apiNote, &$apiRequestParamType, &$apiRequestRaw, &$mockRule, &$mockResult, &$mockConfig, &$success_status_code, &$failure_status_code, &$before_inject, &$after_inject)
  95. {
  96. // if the request params were null, then assign an empty string to them
  97. // 判断部分请求参数是否为空,如果为空值则赋值成为空字符串
  98. if (empty($apiSuccessMock)) {
  99. $apiSuccessMock = '';
  100. }
  101. if (empty($apiFailureMock)) {
  102. $apiFailureMock = '';
  103. }
  104. if (empty($apiRequestRaw)) {
  105. $apiRequestRaw = '';
  106. }
  107. if (empty($apiNote) || $apiNote == '&lt;p&gt;&lt;br&gt;&lt;/p&gt;') {
  108. $apiNote = '';
  109. }
  110. if (empty($apiNoteRaw)) {
  111. $apiNoteRaw = '';
  112. }
  113. $apiDao = new ApiDao();
  114. $groupDao = new GroupDao();
  115. $projectDao = new ProjectDao();
  116. if ($projectID = $groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  117. $projectDao->updateProjectUpdateTime($projectID);
  118. // make up a cache json data about the api
  119. // 生成缓存数据
  120. $cacheJson['baseInfo']['apiName'] = $apiName;
  121. $cacheJson['baseInfo']['apiURI'] = $apiURI;
  122. $cacheJson['baseInfo']['apiProtocol'] = intval($apiProtocol);
  123. $cacheJson['baseInfo']['apiSuccessMock'] = $apiSuccessMock;
  124. $cacheJson['baseInfo']['apiFailureMock'] = $apiFailureMock;
  125. $cacheJson['baseInfo']['apiRequestType'] = intval($apiRequestType);
  126. $cacheJson['baseInfo']['apiStatus'] = intval($apiStatus);
  127. $cacheJson['baseInfo']['starred'] = intval($starred);
  128. $cacheJson['baseInfo']['apiNoteType'] = intval($apiNoteType);
  129. $cacheJson['baseInfo']['apiNoteRaw'] = $apiNoteRaw;
  130. $cacheJson['baseInfo']['apiNote'] = $apiNote;
  131. $cacheJson['baseInfo']['apiRequestParamType'] = intval($apiRequestParamType);
  132. $cacheJson['baseInfo']['apiRequestRaw'] = $apiRequestRaw;
  133. $updateTime = date("Y-m-d H:i:s", time());
  134. $cacheJson['baseInfo']['apiUpdateTime'] = $updateTime;
  135. $cacheJson['baseInfo']['apiFailureStatusCode'] = $failure_status_code;
  136. $cacheJson['baseInfo']['apiSuccessStatusCode'] = $success_status_code;
  137. $cacheJson['baseInfo']['beforeInject'] = $before_inject;
  138. $cacheJson['baseInfo']['afterInject'] = $after_inject;
  139. $cacheJson['headerInfo'] = $apiHeader;
  140. $cacheJson['mockInfo']['mockRule'] = $mockRule;
  141. $cacheJson['mockInfo']['mockResult'] = $mockResult;
  142. $cacheJson['mockInfo']['mockConfig'] = json_decode($mockConfig, TRUE);
  143. // sort the request params
  144. // 将数组中的数字字符串转换为数字并且进行排序
  145. // if (is_array($apiRequestParam))
  146. // {
  147. // $sortKey = array();
  148. // foreach ($apiRequestParam as &$param)
  149. // {
  150. // $sortKey[] = $param['paramKey'];
  151. // $param['paramNotNull'] = intval($param['paramNotNull']);
  152. // $param['paramType'] = intval($param['paramType']);
  153. // }
  154. // array_multisort($sortKey, SORT_ASC, $apiRequestParam);
  155. // }
  156. $cacheJson['requestInfo'] = $apiRequestParam;
  157. // sort the result params
  158. // if (is_array($apiResultParam))
  159. // {
  160. // $sortKey = array();
  161. // foreach ($apiResultParam as &$param)
  162. // {
  163. // $sortKey[] = $param['paramKey'];
  164. // $param['paramNotNull'] = intval($param['paramNotNull']);
  165. // }
  166. // array_multisort($sortKey, SORT_ASC, $apiResultParam);
  167. // }
  168. $cacheJson['resultInfo'] = $apiResultParam;
  169. $cacheJson = json_encode($cacheJson);
  170. $result = $apiDao->addApi($apiName, $apiURI, $apiProtocol, $apiSuccessMock, $apiFailureMock, $apiRequestType, $apiStatus, $groupID, $apiHeader, $apiRequestParam, $apiResultParam, $starred, $apiNoteType, $apiNoteRaw, $apiNote, $projectID, $apiRequestParamType, $apiRequestRaw, $cacheJson, $updateTime, $_SESSION['userID'], $mockRule, $mockResult, $mockConfig, $success_status_code, $failure_status_code, $before_inject, $after_inject);
  171. if ($result) {
  172. //添加版本历史
  173. $apiDao->addApiHistory($projectID, $groupID, $result['apiID'], $cacheJson, '创建API', $_SESSION['userID'], $updateTime);
  174. // 将操作写入日志
  175. $log_dao = new ProjectLogDao();
  176. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $result['apiID'], ProjectLogDao::$OP_TYPE_ADD, "新增接口:'{$apiName}'", date("Y-m-d H:i:s", time()));
  177. return $result;
  178. } else {
  179. return $result;
  180. }
  181. } else
  182. return FALSE;
  183. }
  184. /**
  185. * edit api
  186. * 修改api
  187. *
  188. * @param $apiID int
  189. * 接口ID
  190. * @param $apiName string
  191. * 接口名称
  192. * @param $apiURI string
  193. * 接口地址
  194. * @param $apiProtocol int
  195. * 请求协议 [0/1]=>[HTTP/HTTPS]
  196. * @param $apiSuccessMock string
  197. * 访问成功结果,默认为NULL
  198. * @param $apiFailureMock string
  199. * 访问失败结果,默认为NULL
  200. * @param $apiRequestType int
  201. * 请求类型 [0/1/2/3/4/5/6]=>[POST/GET/PUT/DELETE/HEAD/OPTIONS/PATCH]
  202. * @param $apiStatus int
  203. * 接口状态 [0/1/2]=>[启用/维护/弃用]
  204. * @param $groupID int
  205. * 接口分组ID
  206. * @param $apiHeader string
  207. * 请求头(JSON格式) [{"headerName":"","headerValue":""]
  208. * @param $apiRequestParam string
  209. * 请求参数(JSON格式) [{"paramName":"","paramKey":"","paramType":"","paramLimit":"","paramValue":"","paramNotNull":"","paramValueList":[]}]
  210. * @param $apiResultParam string
  211. * 返回参数(JSON格式) ["paramKey":"","paramName":"","paramNotNull":"","paramValueList":[]]
  212. * @param $starred int
  213. * 是否加星标 [0/1]=>[否/是],默认为0
  214. * @param $apiNoteType string
  215. * 备注类型 [0/1]=>[富文本/markdown],默认为0
  216. * @param $apiNoteRaw string
  217. * 备注(markdown),默认为NULL
  218. * @param $apiNote string
  219. * 备注(富文本),默认为NULL
  220. * @param $apiRequestParamType int
  221. * 请求参数类型 [0/1]=>[表单类型/源数据类型],默认为0
  222. * @param $apiRequestRaw string
  223. * 请求参数源数据,默认为NULL
  224. * @param $update_desc string 更新描述
  225. * @param $mockRule array mock规则
  226. * @param $mockResult string mock结果
  227. * @param $mockConfig string mock配置
  228. * @param $success_status_code
  229. * @param $failure_status_code
  230. * @param $before_inject
  231. * @param $after_inject
  232. * @return bool
  233. */
  234. public function editApi(&$apiID, &$apiName, &$apiURI, &$apiProtocol, &$apiSuccessMock, &$apiFailureMock, &$apiRequestType, &$apiStatus, &$groupID, &$apiHeader, &$apiRequestParam, &$apiResultParam, &$starred, &$apiNoteType, &$apiNoteRaw, &$apiNote, &$apiRequestParamType, &$apiRequestRaw, &$update_desc = NULL, &$mockRule, &$mockResult, &$mockConfig, &$success_status_code, &$failure_status_code, &$before_inject, &$after_inject)
  235. {
  236. // if the request params were null, then assign an empty string to them
  237. // 判断部分请求参数是否为空,如果为空值则赋值成为空字符串
  238. if (empty($apiSuccessMock)) {
  239. $apiSuccessMock = '';
  240. }
  241. if (empty($apiFailureMock)) {
  242. $apiFailureMock = '';
  243. }
  244. if (empty($apiRequestRaw)) {
  245. $apiRequestRaw = '';
  246. }
  247. if (empty($apiNote) || $apiNote == '&lt;p&gt;&lt;br&gt;&lt;/p&gt;') {
  248. $apiNote = '';
  249. }
  250. if (empty($apiNoteRaw)) {
  251. $apiNoteRaw = '';
  252. }
  253. $apiDao = new ApiDao();
  254. $groupDao = new GroupDao();
  255. $projectDao = new ProjectDao();
  256. if ($apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  257. if ($projectID = $groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  258. $projectDao->updateProjectUpdateTime($projectID);
  259. // make up a cache json data about the api
  260. // 生成缓存数据
  261. $cacheJson['baseInfo']['apiName'] = $apiName;
  262. $cacheJson['baseInfo']['apiURI'] = $apiURI;
  263. $cacheJson['baseInfo']['apiProtocol'] = intval($apiProtocol);
  264. $cacheJson['baseInfo']['apiSuccessMock'] = $apiSuccessMock;
  265. $cacheJson['baseInfo']['apiFailureMock'] = $apiFailureMock;
  266. $cacheJson['baseInfo']['apiRequestType'] = intval($apiRequestType);
  267. $cacheJson['baseInfo']['apiStatus'] = intval($apiStatus);
  268. $cacheJson['baseInfo']['starred'] = intval($starred);
  269. $cacheJson['baseInfo']['apiNoteType'] = intval($apiNoteType);
  270. $cacheJson['baseInfo']['apiNoteRaw'] = $apiNoteRaw;
  271. $cacheJson['baseInfo']['apiNote'] = $apiNote;
  272. $cacheJson['baseInfo']['apiRequestParamType'] = intval($apiRequestParamType);
  273. $cacheJson['baseInfo']['apiRequestRaw'] = $apiRequestRaw;
  274. $updateTime = date("Y-m-d H:i:s", time());
  275. $cacheJson['baseInfo']['apiUpdateTime'] = $updateTime;
  276. $cacheJson['baseInfo']['apiFailureStatusCode'] = $failure_status_code;
  277. $cacheJson['baseInfo']['apiSuccessStatusCode'] = $success_status_code;
  278. $cacheJson['baseInfo']['beforeInject'] = $before_inject;
  279. $cacheJson['baseInfo']['afterInject'] = $after_inject;
  280. $cacheJson['headerInfo'] = $apiHeader;
  281. $cacheJson['mockInfo']['mockRule'] = $mockRule;
  282. $cacheJson['mockInfo']['mockResult'] = $mockResult;
  283. $cacheJson['mockInfo']['mockConfig'] = json_decode($mockConfig, TRUE);
  284. // 将数组中的数字字符串转换为数字并且进行排序
  285. // if (is_array($apiRequestParam))
  286. // {
  287. // $sortKey = array();
  288. // foreach ($apiRequestParam as &$param)
  289. // {
  290. // $sortKey[] = $param['paramKey'];
  291. // $param['paramNotNull'] = intval($param['paramNotNull']);
  292. // $param['paramType'] = intval($param['paramType']);
  293. // }
  294. // array_multisort($sortKey, SORT_ASC, $apiRequestParam);
  295. // }
  296. $cacheJson['requestInfo'] = $apiRequestParam;
  297. // if (is_array($apiResultParam))
  298. // {
  299. // $sortKey = array();
  300. // foreach ($apiResultParam as &$param)
  301. // {
  302. // $sortKey[] = $param['paramKey'];
  303. // $param['paramNotNull'] = intval($param['paramNotNull']);
  304. // }
  305. // array_multisort($sortKey, SORT_ASC, $apiResultParam);
  306. // }
  307. $cacheJson['resultInfo'] = $apiResultParam;
  308. $cacheJson = json_encode($cacheJson);
  309. $result = $apiDao->editApi($apiID, $apiName, $apiURI, $apiProtocol, $apiSuccessMock, $apiFailureMock, $apiRequestType, $apiStatus, $groupID, $apiHeader, $apiRequestParam, $apiResultParam, $starred, $apiNoteType, $apiNoteRaw, $apiNote, $apiRequestParamType, $apiRequestRaw, $cacheJson, $updateTime, $_SESSION['userID'], $mockRule, $mockResult, $mockConfig, $success_status_code, $failure_status_code, $before_inject, $after_inject);
  310. if ($result) {
  311. $desc = $update_desc ? $update_desc : '[快速保存]修改接口';
  312. //添加版本历史
  313. $apiDao->addApiHistory($projectID, $groupID, $apiID, $cacheJson, $desc, $_SESSION['userID'], $updateTime);
  314. $update_desc = $update_desc ? "修改接口:'{$apiName}',更新描述:" . $update_desc : "修改接口:'{$apiName}'";
  315. // 将操作写入日志
  316. $log_dao = new ProjectLogDao();
  317. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiID, ProjectLogDao::$OP_TYPE_UPDATE, $update_desc, date("Y-m-d H:i:s", time()));
  318. return $result;
  319. } else {
  320. return FALSE;
  321. }
  322. } else
  323. return FALSE;
  324. } else
  325. return FALSE;
  326. }
  327. /**
  328. * Delete apis in batches and move them into recycling station
  329. * 删除api,将其移入回收站
  330. *
  331. * @param $apiID int
  332. * 接口ID
  333. * @return bool
  334. */
  335. public function removeApi(&$apiID)
  336. {
  337. $apiDao = new ApiDao();
  338. $projectDao = new ProjectDao();
  339. if ($projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  340. $projectDao->updateProjectUpdateTime($projectID);
  341. $result = $apiDao->removeApi($apiID);
  342. if ($result) {
  343. $apiName = $apiDao->getApiName($apiID);
  344. // 将操作写入日志
  345. $log_dao = new ProjectLogDao();
  346. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiID, ProjectLogDao::$OP_TYPE_DELETE, "将接口:'$apiName'移入接口回收站", date("Y-m-d H:i:s", time()));
  347. return $result;
  348. } else {
  349. return FALSE;
  350. }
  351. } else
  352. return FALSE;
  353. }
  354. /**
  355. * recover api
  356. * 恢复api
  357. *
  358. * @param $apiID int
  359. * 接口ID
  360. * @return bool
  361. */
  362. public function recoverApi(&$apiID)
  363. {
  364. $apiDao = new ApiDao();
  365. $projectDao = new ProjectDao();
  366. if ($projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  367. $projectDao->updateProjectUpdateTime($projectID);
  368. $result = $apiDao->recoverApi($apiID);
  369. if ($result) {
  370. $apiName = $apiDao->getApiName($apiID);
  371. // 将操作写入日志
  372. $log_dao = new ProjectLogDao();
  373. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiID, ProjectLogDao::$OP_TYPE_OTHERS, "将接口:'$apiName'从回收站恢复", date("Y-m-d H:i:s", time()));
  374. return $result;
  375. } else {
  376. return FALSE;
  377. }
  378. } else
  379. return FALSE;
  380. }
  381. /**
  382. * delete api
  383. * 彻底删除api
  384. *
  385. * @param $apiID int
  386. * 接口ID
  387. * @return bool
  388. */
  389. public function deleteApi(&$apiID)
  390. {
  391. $apiDao = new ApiDao();
  392. $projectDao = new ProjectDao();
  393. if ($projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  394. $projectDao->updateProjectUpdateTime($projectID);
  395. $result = $apiDao->deleteApi($apiID);
  396. if ($result) {
  397. $apiName = $apiDao->getApiName($apiID);
  398. // 将操作写入日志
  399. $log_dao = new ProjectLogDao();
  400. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiID, ProjectLogDao::$OP_TYPE_DELETE, "彻底删除接口:'$apiName'", date("Y-m-d H:i:s", time()));
  401. return $result;
  402. } else {
  403. return FALSE;
  404. }
  405. } else
  406. return FALSE;
  407. }
  408. /**
  409. * clean up recycling station
  410. * 清空回收站
  411. *
  412. * @param $projectID int
  413. * 项目ID
  414. * @return bool
  415. */
  416. public function cleanRecyclingStation(&$projectID)
  417. {
  418. $apiDao = new ApiDao();
  419. $projectDao = new ProjectDao();
  420. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  421. $projectDao->updateProjectUpdateTime($projectID);
  422. $result = $apiDao->cleanRecyclingStation($projectID);
  423. if ($result) {
  424. // 将操作写入日志
  425. $log_dao = new ProjectLogDao();
  426. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $projectID, ProjectLogDao::$OP_TYPE_DELETE, "清空接口回收站", date("Y-m-d H:i:s", time()));
  427. return $result;
  428. } else {
  429. return FALSE;
  430. }
  431. } else
  432. return FALSE;
  433. }
  434. /**
  435. * get api list by group and order by apiName
  436. * 获取api列表并按照名称排序
  437. *
  438. * @param $groupID int
  439. * 接口分组ID
  440. * @param $asc int
  441. * 排序 [0/1]=>[升序/降序]
  442. * @return bool|array
  443. */
  444. public function getApiListOrderByName(&$groupID, &$asc = 0)
  445. {
  446. $apiDao = new ApiDao();
  447. $groupDao = new GroupDao();
  448. if ($groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  449. $asc = $asc == 0 ? 'ASC' : 'DESC';
  450. return $apiDao->getApiListOrderByName($groupID, $asc);
  451. } else
  452. return FALSE;
  453. }
  454. /**
  455. * get api list by group and order by update time
  456. * 获取api列表并按照时间排序
  457. *
  458. * @param $groupID int
  459. * 接口分组ID
  460. * @param $asc int
  461. * 排序 [0/1]=>[升序/降序]
  462. * @return bool|array
  463. */
  464. public function getApiListOrderByTime(&$groupID, &$asc = 0)
  465. {
  466. $apiDao = new ApiDao();
  467. $groupDao = new GroupDao();
  468. if ($groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  469. $asc = $asc == 0 ? 'ASC' : 'DESC';
  470. return $apiDao->getApiListOrderByTime($groupID, $asc);
  471. } else
  472. return FALSE;
  473. }
  474. /**
  475. * get api list by group and order by starred
  476. * 获取api列表并按照星标排序
  477. *
  478. * @param $groupID int
  479. * 接口分组ID
  480. * @param $asc int
  481. * 排序 [0/1]=>[升序/降序]
  482. * @return bool|array
  483. */
  484. public function getApiListOrderByStarred(&$groupID, &$asc = 0)
  485. {
  486. $apiDao = new ApiDao();
  487. $groupDao = new GroupDao();
  488. if ($groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  489. $asc = $asc == 0 ? 'ASC' : 'DESC';
  490. return $apiDao->getApiListOrderByStarred($groupID, $asc);
  491. } else
  492. return FALSE;
  493. }
  494. /**
  495. * get api list by group and order by URI
  496. * 获取api列表并按Uri排序
  497. *
  498. * @param $groupID int
  499. * 接口分组ID
  500. * @param $asc int
  501. * 排序 [0/1]=>[升序/降序]
  502. * @return bool|array
  503. */
  504. public function getApiListOrderByUri(&$groupID, &$asc = 0)
  505. {
  506. $apiDao = new ApiDao();
  507. $groupDao = new GroupDao();
  508. if ($groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  509. $asc = $asc == 0 ? 'ASC' : 'DESC';
  510. return $apiDao->getApiListOrderByUri($groupID, $asc);
  511. } else
  512. return FALSE;
  513. }
  514. /**
  515. * get api list by group and order by create time
  516. * 获取api列表按创建时间排序
  517. *
  518. * @param $groupID int
  519. * 分组ID
  520. * @param $asc int
  521. * 排序 [0/1]=>[升序/降序]
  522. * @return bool|array
  523. */
  524. public function getApiListOrderByCreateTime(&$groupID, &$asc = 0)
  525. {
  526. $apiDao = new ApiDao();
  527. $groupDao = new GroupDao();
  528. if ($groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  529. $asc = $asc == 0 ? 'ASC' : 'DESC';
  530. return $apiDao->getApiListOrderByCreateTime($groupID, $asc);
  531. } else
  532. return FALSE;
  533. }
  534. /**
  535. * get recycling station api list by project and order by apiName
  536. * 获取api列表并按照名称排序
  537. *
  538. * @param $projectID int
  539. * 项目ID
  540. * @param $asc int
  541. * 排序 [0/1]=>[升序/降序]
  542. * @return bool|array
  543. */
  544. public function getRecyclingStationApiListOrderByName(&$projectID, &$asc = 0)
  545. {
  546. $apiDao = new ApiDao();
  547. $projectDao = new ProjectDao();
  548. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  549. $asc = $asc == 0 ? 'ASC' : 'DESC';
  550. return $apiDao->getRecyclingStationApiListOrderByName($projectID, $asc);
  551. } else
  552. return FALSE;
  553. }
  554. /**
  555. * get recycling station api list by project and order by remove time
  556. * 获取api列表并按照移除时间排序
  557. *
  558. * @param $projectID int
  559. * 项目ID
  560. * @param $asc int
  561. * 排序 [0/1]=>[升序/降序]
  562. * @return bool|array
  563. */
  564. public function getRecyclingStationApiListOrderByRemoveTime(&$projectID, &$asc = 0)
  565. {
  566. $apiDao = new ApiDao();
  567. $projectDao = new ProjectDao();
  568. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  569. $asc = $asc == 0 ? 'ASC' : 'DESC';
  570. return $apiDao->getRecyclingStationApiListOrderByRemoveTime($projectID, $asc);
  571. } else
  572. return FALSE;
  573. }
  574. /**
  575. * get recycling station api list by project and order by starred
  576. * 获取api列表并按照星标排序
  577. *
  578. * @param $projectID int
  579. * 项目ID
  580. * @param $asc int
  581. * 排序 [0/1]=>[升序/降序]
  582. * @return bool|array
  583. */
  584. public function getRecyclingStationApiListOrderByStarred(&$projectID, &$asc = 0)
  585. {
  586. $apiDao = new ApiDao();
  587. $projectDao = new ProjectDao();
  588. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  589. $asc = $asc == 0 ? 'ASC' : 'DESC';
  590. return $apiDao->getRecyclingStationApiListOrderByStarred($projectID, $asc);
  591. } else
  592. return FALSE;
  593. }
  594. /**
  595. * get recycling station api list by project and order by URI
  596. * 获取api列表并按照Uri排序
  597. *
  598. * @param $projectID int
  599. * 项目ID
  600. * @param $asc int
  601. * 排序 [0/1]=>[升序/降序]
  602. * @return bool|array
  603. */
  604. public function getRecyclingStationApiListOrderByUri(&$projectID, &$asc = 0)
  605. {
  606. $apiDao = new ApiDao();
  607. $projectDao = new ProjectDao();
  608. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  609. $asc = $asc == 0 ? 'ASC' : 'DESC';
  610. return $apiDao->getRecyclingStationApiListOrderByUri($projectID, $asc);
  611. } else
  612. return FALSE;
  613. }
  614. /**
  615. * get recycling station api list by project and order by create time
  616. * 获取api列表并按照创建时间排序
  617. *
  618. * @param $projectID int
  619. * 项目ID
  620. * @param $asc int
  621. * 排序 [0/1]=>[升序/降序]
  622. * @return bool|array
  623. */
  624. public function getRecyclingStationApiListOrderByCreateTime(&$projectID, &$asc = 0)
  625. {
  626. $apiDao = new ApiDao();
  627. $projectDao = new ProjectDao();
  628. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  629. $asc = $asc == 0 ? 'ASC' : 'DESC';
  630. return $apiDao->getRecyclingStationApiListOrderByCreateTime($projectID, $asc);
  631. } else
  632. return FALSE;
  633. }
  634. /**
  635. * get api detail
  636. * 获取api详情
  637. *
  638. * @param $apiID int
  639. * 接口ID
  640. * @return array|bool
  641. */
  642. public function getApi(&$apiID)
  643. {
  644. $apiDao = new ApiDao();
  645. if ($apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  646. $result = $apiDao->getApi($apiID);
  647. // 将mock数据转码以适应前端直接显示html代码
  648. $result['baseInfo']['apiSuccessMock'] = htmlspecialchars($result['baseInfo']['apiSuccessMock']);
  649. $result['baseInfo']['apiFailureMock'] = htmlspecialchars($result['baseInfo']['apiFailureMock']);
  650. foreach ($result['testHistory'] as &$history) {
  651. $history['requestInfo'] = json_decode($history['requestInfo'], TRUE);
  652. $history['resultInfo'] = json_decode($history['resultInfo'], TRUE);
  653. }
  654. return $result;
  655. } else
  656. return FALSE;
  657. }
  658. /**
  659. * get all api list by project and order by apiName
  660. * 获取所有分组的api并按照名称排序
  661. *
  662. * @param $projectID int
  663. * 项目ID
  664. * @param $asc int
  665. * 排序 [0/1]=>[升序/降序]
  666. * @return bool|array
  667. */
  668. public function getAllApiListOrderByName(&$projectID, &$asc = 0)
  669. {
  670. $apiDao = new ApiDao();
  671. $projectDao = new ProjectDao();
  672. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  673. $asc = $asc == 0 ? 'ASC' : 'DESC';
  674. return $apiDao->getAllApiListOrderByName($projectID, $asc);
  675. } else
  676. return FALSE;
  677. }
  678. /**
  679. * get all api list by project and order by apiName
  680. * 获取所有分组的api并按照名称排序
  681. *
  682. * @param $projectID int
  683. * 项目ID
  684. * @param $asc int
  685. * 排序 [0/1]=>[升序/降序]
  686. * @return bool|array
  687. */
  688. public function getAllApiListOrderByTime(&$projectID, &$asc = 0)
  689. {
  690. $apiDao = new ApiDao();
  691. $projectDao = new ProjectDao();
  692. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  693. $asc = $asc == 0 ? 'ASC' : 'DESC';
  694. return $apiDao->getAllApiListOrderByTime($projectID, $asc);
  695. } else
  696. return FALSE;
  697. }
  698. /**
  699. * get all api list by project and order by URI
  700. * 获取所有分组的api并按照URI排序
  701. *
  702. * @param $projectID int
  703. * 项目ID
  704. * @param $asc int
  705. * 排序 [0/1]=>[升序/降序]
  706. * @return bool|array
  707. */
  708. public function getAllApiListOrderByUri(&$projectID, &$asc = 0)
  709. {
  710. $apiDao = new ApiDao();
  711. $projectDao = new ProjectDao();
  712. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  713. $asc = $asc == 0 ? 'ASC' : 'DESC';
  714. return $apiDao->getAllApiListOrderByUri($projectID, $asc);
  715. } else
  716. return FALSE;
  717. }
  718. /**
  719. * get all api list by project and order by create time
  720. * 获取所有分组的api并按照创建时间排序
  721. *
  722. * @param $projectID int
  723. * 项目ID
  724. * @param $asc int
  725. * 排序 [0/1]=>[升序/降序]
  726. * @return bool|array
  727. */
  728. public function getAllApiListOrderByCreateTime(&$projectID, &$asc = 0)
  729. {
  730. $apiDao = new ApiDao();
  731. $projectDao = new ProjectDao();
  732. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  733. $asc = $asc == 0 ? 'ASC' : 'DESC';
  734. return $apiDao->getAllApiListOrderByCreateTime($projectID, $asc);
  735. } else
  736. return FALSE;
  737. }
  738. /**
  739. * get all api list by project and order by starred
  740. * 获取所有分组的api并按照星标排序
  741. *
  742. * @param $projectID int
  743. * 项目ID
  744. * @param $asc int
  745. * 排序 [0/1]=>[升序/降序]
  746. * @return bool|array
  747. */
  748. public function getAllApiListOrderByStarred(&$projectID, &$asc = 0)
  749. {
  750. $apiDao = new ApiDao();
  751. $projectDao = new ProjectDao();
  752. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  753. $asc = $asc == 0 ? 'ASC' : 'DESC';
  754. return $apiDao->getAllApiListOrderByStarred($projectID, $asc);
  755. } else
  756. return FALSE;
  757. }
  758. /**
  759. * search api
  760. * 搜索api
  761. *
  762. * @param $tips string
  763. * 搜索关键字
  764. * @param $projectID int
  765. * 项目ID
  766. * @return bool|array
  767. */
  768. public function searchApi(&$tips, &$projectID)
  769. {
  770. $apiDao = new ApiDao();
  771. $projectDao = new ProjectDao();
  772. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  773. return $apiDao->searchApi($tips, $projectID);
  774. } else
  775. return FALSE;
  776. }
  777. /**
  778. * add star
  779. * 添加星标
  780. *
  781. * @param $apiID int
  782. * 接口ID
  783. * @return bool
  784. */
  785. public function addStar(&$apiID)
  786. {
  787. $apiDao = new ApiDao();
  788. if ($projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  789. $projectDao = new ProjectDao();
  790. $projectDao->updateProjectUpdateTime($projectID);
  791. return $apiDao->addStar($apiID);
  792. } else
  793. return FALSE;
  794. }
  795. /**
  796. * remove star
  797. * 去除星标
  798. *
  799. * @param $apiID int
  800. * 接口ID
  801. * @return bool
  802. */
  803. public function removeStar(&$apiID)
  804. {
  805. $apiDao = new ApiDao();
  806. if ($projectID = $apiDao->checkApiPermission($apiID, $_SESSION['userID'])) {
  807. $projectDao = new ProjectDao();
  808. $projectDao->updateProjectUpdateTime($projectID);
  809. return $apiDao->removeStar($apiID);
  810. } else
  811. return FALSE;
  812. }
  813. /**
  814. * Remove apis in batches from recycling station
  815. * 批量删除api
  816. *
  817. * @param $projectID int
  818. * 项目ID
  819. * @param $apiIDs string
  820. * 接口ID列表
  821. * @return bool
  822. */
  823. public function deleteApis(&$projectID, &$apiIDs)
  824. {
  825. $apiDao = new ApiDao();
  826. $projectDao = new ProjectDao();
  827. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  828. $apiName = $apiDao->getApiName($apiIDs);
  829. $result = $apiDao->deleteApis($projectID, $apiIDs);
  830. if ($result) {
  831. $projectDao->updateProjectUpdateTime($projectID);
  832. // 将操作写入日志
  833. $log_dao = new ProjectLogDao();
  834. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiIDs, ProjectLogDao::$OP_TYPE_DELETE, "彻底删除接口:'$apiName'", date("Y-m-d H:i:s", time()));
  835. return $result;
  836. } else {
  837. return FALSE;
  838. }
  839. } else
  840. return FALSE;
  841. }
  842. /**
  843. * Delete apis in batches and move them into recycling station
  844. * 批量将api移入回收站
  845. *
  846. * @param $projectID int
  847. * 项目ID
  848. * @param $apiIDs string
  849. * 接口ID列表
  850. * @return bool
  851. */
  852. public function removeApis(&$projectID, &$apiIDs)
  853. {
  854. $apiDao = new ApiDao();
  855. $projectDao = new ProjectDao();
  856. if ($projectDao->checkProjectPermission($projectID, $_SESSION['userID'])) {
  857. $projectDao->updateProjectUpdateTime($projectID);
  858. $result = $apiDao->removeApis($projectID, $apiIDs);
  859. if ($result) {
  860. $apiName = $apiDao->getApiName($apiIDs);
  861. // 将操作写入日志
  862. $log_dao = new ProjectLogDao();
  863. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiIDs, ProjectLogDao::$OP_TYPE_DELETE, "将接口:'$apiName'移入接口回收站", date("Y-m-d H:i:s", time()));
  864. return $result;
  865. } else {
  866. return FALSE;
  867. }
  868. } else
  869. return FALSE;
  870. }
  871. /**
  872. * Recover api in batches
  873. * 批量恢复api
  874. *
  875. * @param $groupID int
  876. * 分组ID
  877. * @param $apiIDs string
  878. * 接口ID列表
  879. * @return bool
  880. */
  881. public function recoverApis(&$groupID, &$apiIDs)
  882. {
  883. $apiDao = new ApiDao();
  884. $groupDao = new GroupDao();
  885. $projectDao = new ProjectDao();
  886. if ($projectID = $groupDao->checkGroupPermission($groupID, $_SESSION['userID'])) {
  887. $projectDao->updateProjectUpdateTime($projectID);
  888. $result = $apiDao->recoverApis($groupID, $apiIDs);
  889. if ($result) {
  890. $apiName = $apiDao->getApiName($apiIDs);
  891. // 将操作写入日志
  892. $log_dao = new ProjectLogDao();
  893. $log_dao->addOperationLog($projectID, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $apiIDs, ProjectLogDao::$OP_TYPE_OTHERS, "将接口:'$apiName'从回收站恢复", date("Y-m-d H:i:s", time()));
  894. return $result;
  895. } else {
  896. return FALSE;
  897. }
  898. } else {
  899. return FALSE;
  900. }
  901. }
  902. /**
  903. * 获取接口历史列表
  904. * @param $api_id
  905. * @return array|bool
  906. */
  907. public function getApiHistoryList(&$api_id)
  908. {
  909. $dao = new ApiDao();
  910. if ($dao->checkApiPermission($api_id, $_SESSION['userID'])) {
  911. // 可以获取10条历史记录
  912. $api_history_list = $dao->getApiHistoryList($api_id, 10);
  913. $result = array();
  914. $result['apiHistoryList'] = $api_history_list ? $api_history_list : array();
  915. $result['apiName'] = $dao->getApiName($api_id);
  916. return $result;
  917. } else {
  918. return FALSE;
  919. }
  920. }
  921. /**
  922. * 删除历史记录
  923. * @param $api_id
  924. * @param $api_history_id
  925. * @return bool
  926. */
  927. public function deleteApiHistory(&$api_id, &$api_history_id)
  928. {
  929. $user_id = $_SESSION['userID'];
  930. $api_dao = new ApiDao();
  931. if ($project_id = $api_dao->checkApiPermission($api_id, $user_id)) {
  932. if ($api_dao->deleteApiHistory($api_history_id, $api_id)) {
  933. $api_name = $api_dao->getApiName($api_id);
  934. // 将操作写入日志
  935. $log_dao = new ProjectLogDao();
  936. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_API, $api_id, ProjectLogDao::$OP_TYPE_DELETE, "删除了'$api_name'的历史版本", date("Y-m-d H:i:s", time()));
  937. return TRUE;
  938. } else {
  939. return FALSE;
  940. }
  941. } else {
  942. return FALSE;
  943. }
  944. }
  945. /**
  946. * 切换接口历史版本
  947. * @param $api_id
  948. * @param $api_history_id
  949. * @return bool
  950. */
  951. public function toggleApiHistory(&$api_id, &$api_history_id)
  952. {
  953. $user_id = $_SESSION['userID'];
  954. $api_dao = new ApiDao();
  955. if ($project_id = $api_dao->checkApiPermission($api_id, $user_id)) {
  956. if ($api_dao->toggleApiHistory($api_id, $api_history_id)) {
  957. $api_name = $api_dao->getApiName($api_id);
  958. // 将操作写入日志
  959. $log_dao = new ProjectLogDao();
  960. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_API, $api_id, ProjectLogDao::$OP_TYPE_UPDATE, "切换了'$api_name'的版本", date("Y-m-d H:i:s", time()));
  961. return TRUE;
  962. } else {
  963. return FALSE;
  964. }
  965. } else {
  966. return FALSE;
  967. }
  968. }
  969. /**
  970. * 获取接口mock数据
  971. * @param $api_id
  972. * @return bool
  973. */
  974. public function getApiMockData(&$api_id)
  975. {
  976. $user_id = $_SESSION['userID'];
  977. $api_dao = new ApiDao();
  978. if ($api_dao->checkApiPermission($api_id, $user_id)) {
  979. return $api_dao->getApiMockData($api_id);
  980. } else {
  981. return FALSE;
  982. }
  983. }
  984. /**
  985. * 修改接口mock数据
  986. * @param $api_id
  987. * @param $mock_rule
  988. * @param $mock_result
  989. * @param $mock_config
  990. * @return bool
  991. */
  992. public function editApiMockData(&$api_id, &$mock_rule, &$mock_result, &$mock_config)
  993. {
  994. $user_id = $_SESSION['userID'];
  995. $api_dao = new ApiDao();
  996. if ($project_id = $api_dao->checkApiPermission($api_id, $user_id)) {
  997. $result = $api_dao->editApiMockData($api_id, $mock_rule, $mock_result, $mock_config);
  998. if ($result) {
  999. $log_dao = new ProjectLogDao();
  1000. $log_dao->addOperationLog($project_id, $user_id, ProjectLogDao::$OP_TARGET_API, $api_id, ProjectLogDao::$OP_TYPE_UPDATE, '更新mock数据', date('Y-m-d H:i:s', time()));
  1001. return $result;
  1002. } else {
  1003. return FALSE;
  1004. }
  1005. } else {
  1006. return FALSE;
  1007. }
  1008. }
  1009. /**
  1010. * 批量修改接口分组
  1011. * @param $api_ids
  1012. * @param $group_id
  1013. * @return bool
  1014. */
  1015. public function changeApiGroup(&$api_ids, &$group_id)
  1016. {
  1017. $group_dao = new GroupDao();
  1018. if (!($project_id = $group_dao->checkGroupPermission($group_id, $_SESSION['userID']))) {
  1019. return FALSE;
  1020. }
  1021. $dao = new ApiDao();
  1022. return $dao->changeApiGroup($api_ids, $project_id, $group_id);
  1023. }
  1024. /**
  1025. * 批量导出接口数据
  1026. * @param $project_id
  1027. * @param $api_ids
  1028. * @return bool|string
  1029. */
  1030. public function exportApi(&$project_id, &$api_ids)
  1031. {
  1032. $dao = new ApiDao();
  1033. $project_dao = new ProjectDao();
  1034. if (!$project_dao->checkProjectPermission($project_id, $_SESSION['userID'])) {
  1035. return FALSE;
  1036. }
  1037. $result = $dao->getApiData($project_id, $api_ids);
  1038. if ($result) {
  1039. $fileName = 'eoLinker_api_export_' . $_SESSION['userName'] . '_' . time() . '.export';
  1040. if (file_put_contents(realpath('./dump') . DIRECTORY_SEPARATOR . $fileName, json_encode($result))) {
  1041. $api_name = $dao->getApiName($api_ids);
  1042. //将操作写入日志
  1043. $log_dao = new ProjectLogDao();
  1044. $log_dao->addOperationLog($project_id, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $project_id, ProjectLogDao::$OP_TYPE_OTHERS, "批量导出接口:$api_name", date("Y-m-d H:i:s", time()));
  1045. return $fileName;
  1046. }
  1047. } else {
  1048. return FALSE;
  1049. }
  1050. }
  1051. /**
  1052. * 批量导入接口
  1053. * @param $group_id
  1054. * @param $data
  1055. * @return bool
  1056. */
  1057. public function importApi(&$group_id, &$data)
  1058. {
  1059. $group_dao = new GroupDao();
  1060. if (!($project_id = $group_dao->checkGroupPermission($group_id, $_SESSION['userID']))) {
  1061. return FALSE;
  1062. }
  1063. $dao = new ApiDao();
  1064. $result = $dao->importApi($group_id, $project_id, $data, $_SESSION['userID']);
  1065. if ($result) {
  1066. $names = array();
  1067. foreach ($data as $api) {
  1068. $names[] = $api['baseInfo']['apiName'];
  1069. }
  1070. $api_name = implode(",", $names);
  1071. //将操作写入日志
  1072. $log_dao = new ProjectLogDao();
  1073. $log_dao->addOperationLog($project_id, $_SESSION['userID'], ProjectLogDao::$OP_TARGET_API, $group_id, ProjectLogDao::$OP_TYPE_OTHERS, "批量导入接口:$api_name", date("Y-m-d H:i:s", time()));
  1074. return $result;
  1075. } else {
  1076. return FALSE;
  1077. }
  1078. }
  1079. }
  1080. ?>