| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- const _ = require('underscore');
- const axios = require('axios');
- const isNode = typeof global == 'object' && global.global === global;
- async function handle(
- res,
- projectId,
- selectCatid,
- menuList,
- basePath,
- dataSync,
- messageError,
- messageSuccess,
- callback,
- token,
- port
- ) {
- const handleAddCat = async cats => {
- let catsObj = {};
- if (cats && Array.isArray(cats)) {
- for (let i = 0; i < cats.length; i++) {
- let cat = cats[i];
- let findCat = _.find(menuList, menu => menu.name === cat.name);
- catsObj[cat.name] = cat;
- if (findCat) {
- cat.id = findCat._id;
- } else {
- let apipath = '/api/interface/add_cat';
- if (isNode) {
- apipath = 'http://127.0.0.1:' + port + apipath;
- }
- let data = {
- name: cat.name,
- project_id: projectId,
- desc: cat.desc,
- token
- };
- let result = await axios.post(apipath, data);
- if (result.data.errcode) {
- messageError(result.data.errmsg);
- callback({ showLoading: false });
- return false;
- }
- cat.id = result.data.data._id;
- }
- }
- }
- return catsObj;
- };
- const handleAddInterface = async res => {
- const cats = await handleAddCat(res.cats);
- if (cats === false) {
- return;
- }
- res = res.apis;
- let len = res.length;
- let count = 0;
- let successNum = len;
- let existNum = 0;
- if (len === 0) {
- messageError(`解析数据为空`);
- callback({ showLoading: false });
- return;
- }
- for (let index = 0; index < res.length; index++) {
- let item = res[index];
- let data = Object.assign(item, {
- project_id: projectId,
- catid: selectCatid
- });
- if (basePath) {
- data.path =
- data.path.indexOf(basePath) === 0 ? data.path.substr(basePath.length) : data.path;
- }
- if (
- data.catname &&
- cats[data.catname] &&
- typeof cats[data.catname] === 'object' &&
- cats[data.catname].id
- ) {
- data.catid = cats[data.catname].id;
- }
- data.token = token;
- if (dataSync !== 'normal') {
- // 开启同步功能
- count++;
- let apipath = '/api/interface/save';
- if (isNode) {
- apipath = 'http://127.0.0.1:' + port + apipath;
- }
- data.dataSync = dataSync;
- let result = await axios.post(apipath, data);
- if (result.data.errcode) {
- successNum--;
- callback({ showLoading: false });
- messageError(result.data.errmsg);
- } else {
- existNum = existNum + result.data.data.length;
- }
- } else {
- // 未开启同步功能
- count++;
- let apipath = '/api/interface/add';
- if (isNode) {
- apipath = 'http://127.0.0.1:' + port + apipath;
- }
- let result = await axios.post(apipath, data);
- if (result.data.errcode) {
- successNum--;
- if (result.data.errcode == 40022) {
- existNum++;
- }
- if (result.data.errcode == 40033) {
- callback({ showLoading: false });
- messageError('没有权限');
- break;
- }
- }
- }
- if (count === len) {
- callback({ showLoading: false });
- messageSuccess(`成功导入接口 ${successNum} 个, 已存在的接口 ${existNum} 个`);
- }
- }
- };
- return await handleAddInterface(res);
- }
- module.exports = handle;
|