diff --git a/CHANGELOG.md b/CHANGELOG.md index 35f362e5..bd2202fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +### v1.3.17 + +#### Bug Fixed +* 修复服务器端测试,邮件通知开启token undefined bug +* 将状态由未完成修改成已完成之后,原来的json格式的数据会变成json-schema +* 有分类为空时导出json后再导入报错 +* 只修改参数 必需/非必需, 文本/文件 时, 查看改动详情, 提示没有改动 + + ### v1.3.16 * 支持自定义域名邮箱登录 diff --git a/a.markdown b/a.markdown index aff80335..d35954f7 100644 --- a/a.markdown +++ b/a.markdown @@ -1,5 +1,5 @@ -

test_22(copy_copy)

+

导入导出测试

@@ -7,43 +7,20 @@ [TOC] -## cluster%0A%3Ca%20id%3Dcluster%3E%20%3C/a%3E +# www +[TOC] + + +## test%0A%3Ca%20id%3Dtest%3E%20%3C/a%3E [TOC] ### 基本信息 -**Path:** /cluster +**Path:** /api/col/list -**Method:** POST +**Method:** GET **接口描述:** - +undefined ### 请求参数 -**Headers** - -| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | -| ------------ | ------------ | ------------ | ------------ | ------------ | -| X-Auth-User | | 是 | | | -| X-Auth-Project | | 是 | | | -| X-Auth-token | | 是 | | | -| Content-Type | multipart/form-data | 是 | | | -**Query** - -| 参数名称 | 是否必须 | 示例 | 备注 | -| ------------ | ------------ | ------------ | ------------ | -| qw | 是 | | | -**Body** - -| 参数名称 | 参数类型 | 是否必须 | 示例 | 备注 | -| ------------ | ------------ | ------------ | ------------ | ------------ | -| 1 | text | 是 | | | -| 2 | file | 是 | | | - - - -### 返回数据 - -```javascript -{"type":"object","title":"empty object","properties":{"id":{"type":"object","properties":{"field_1":{"type":"object","properties":{"field_2":{"type":"object","properties":{"field_3":{"type":"object","properties":{"field_4":{"type":"object","properties":{"field_5":{"type":"object","properties":{"field_6":{"type":"object","properties":{"field_7额 u 俄 u 俄 u 茹茹茹茹茹茹茹rrururuueueue ":{"type":"string"}},"required":[]}}}}}}}}}}}}},"msg":{"type":"string"}},"required":[]} -``` \ No newline at end of file diff --git a/client/components/TimeLine/TimeLine.js b/client/components/TimeLine/TimeLine.js index 797b72e2..53081f89 100644 --- a/client/components/TimeLine/TimeLine.js +++ b/client/components/TimeLine/TimeLine.js @@ -227,8 +227,8 @@ class TimeTree extends Component { if (this.state.loading) { pending = } - let diffView = showDiffMsg(jsondiffpatch, formattersHtml, curDiffData); + return ( diff --git a/common/diff-view.js b/common/diff-view.js index 368796e4..e6ca138f 100644 --- a/common/diff-view.js +++ b/common/diff-view.js @@ -41,15 +41,16 @@ module.exports = function (jsondiffpatch, formattersHtml, curDiffData) { } const handleParams = (item) => { - item._id = undefined; + let newItem = Object.assign({}, item); + newItem._id = undefined; - Object.keys(item).forEach(key => { + Object.keys(newItem).forEach(key => { switch (key) { - case 'required': item[key] = valueMaps[item[key]]; break; - case 'type': item[key] = valueMaps[item[key]]; break; + case 'required': newItem[key] = valueMaps[newItem[key]]; break; + case 'type': newItem[key] = valueMaps[newItem[key]]; break; } }) - return item; + return newItem; } const diffArray = (arr1, arr2) => { diff --git a/docs/documents/project.md b/docs/documents/project.md index 6ba40b7a..a7f926d3 100755 --- a/docs/documents/project.md +++ b/docs/documents/project.md @@ -170,6 +170,18 @@ context.promise = new Promise(function(resolve){ }) ``` +promise 还可以来设置接口延迟 + +```javascript +context.promise = new Promise(function(resolve){ + setTimeout(function(){ + console.log('delay 1000ms') + resolve('ok') + }, 1000) +}) +``` + + 使用方法就是在 `context` 里面添加 `promise` 参数,并且返回一个 Promise,不熟悉 Promise 的童鞋可以查下相关用法,ajax 请求可以使用 `context.utils.axios` 库。 diff --git a/exts/yapi-plugin-export-data/controller.js b/exts/yapi-plugin-export-data/controller.js index 9a4bb058..f62c9f7b 100644 --- a/exts/yapi-plugin-export-data/controller.js +++ b/exts/yapi-plugin-export-data/controller.js @@ -28,16 +28,15 @@ class exportController extends baseController { list = list.sort((a, b) => { return a.index - b.index; }); - if (list.length > 0) { - item.list = list; - newResult[i] = item; - } + item.list = list; + newResult[i] = item; } return newResult; } handleExistId(data) { + function delArrId(arr, fn) { if (!Array.isArray(arr)) return; arr.forEach(item => { @@ -88,6 +87,7 @@ class exportController extends baseController { return (ctx.body = tp); } case 'json': { + let data = this.handleExistId(list); tp = JSON.stringify(data, null, 2); ctx.set('Content-Disposition', `attachment; filename=api.json`); diff --git a/server/controllers/interface.js b/server/controllers/interface.js index 28384562..7fa7e295 100755 --- a/server/controllers/interface.js +++ b/server/controllers/interface.js @@ -493,8 +493,8 @@ class interfaceController extends baseController { let id = params.id; params.message = params.message || ''; params.message = params.message.replace(/\n/g, "
") - params.res_body_is_json_schema = _.isUndefined (params.res_body_is_json_schema) ? true : params.res_body_is_json_schema; - params.req_body_is_json_schema = _.isUndefined(params.req_body_is_json_schema) ? true : params.req_body_is_json_schema; + // params.res_body_is_json_schema = _.isUndefined (params.res_body_is_json_schema) ? true : params.res_body_is_json_schema; + // params.req_body_is_json_schema = _.isUndefined(params.req_body_is_json_schema) ? true : params.req_body_is_json_schema; let interfaceData = await this.Model.get(id); if (!interfaceData) { @@ -550,6 +550,7 @@ class interfaceController extends baseController { let result = await this.Model.up(id, data); let username = this.getUsername(); let CurrentInterfaceData = await this.Model.get(id); + console.log('interface', interfaceData); let logData = { interface_id: id, cat_id: data.catid, @@ -557,6 +558,7 @@ class interfaceController extends baseController { old: interfaceData.toObject() } + this.catModel.get(interfaceData.catid).then((cate) => { yapi.commons.saveLog({ content: `${username} @@ -573,7 +575,16 @@ class interfaceController extends baseController { this.projectModel.up(interfaceData.project_id, { up_time: new Date().getTime() }).then(); if (params.switch_notice === true) { + // console.log('logData', logData); + // let logDiffData = { + // interface_id: id, + // cat_id: data.catid, + // current: CurrentInterfaceData.toObject(), + // old: interfaceData.toObject() + // } + let diffView = showDiffMsg(jsondiffpatch, formattersHtml, logData); + let annotatedCss = fs.readFileSync(path.resolve(yapi.WEBROOT, 'node_modules/jsondiffpatch/public/formatters-styles/annotated.css'), 'utf8'); let htmlCss = fs.readFileSync(path.resolve(yapi.WEBROOT, 'node_modules/jsondiffpatch/public/formatters-styles/html.css'), 'utf8'); diff --git a/server/utils/commons.js b/server/utils/commons.js index 882709b9..060c1655 100755 --- a/server/utils/commons.js +++ b/server/utils/commons.js @@ -381,6 +381,7 @@ exports.saveLog = logData => { typeid: logData.typeid, data: logData.data }; + logInst.save(data).then(); } catch (e) { yapi.commons.log(e, 'error'); // eslint-disable-line