Browse Source

暂交资源目录增删改查接口

master
zmh 2 years ago
parent
commit
a5506b689e
  1. 115
      api/app/lib/controllers/latestMetadata/index.js
  2. 18
      api/app/lib/routes/latestMetadata/index.js

115
api/app/lib/controllers/latestMetadata/index.js

@ -0,0 +1,115 @@
'use strict';
//获取资源目录列表
async function getResourceCatalog(ctx) {
try {
const models = ctx.fs.dc.models;
const rslt = await models.ResourceCatalog.findAll({
order: [['id', 'asc']],
});
ctx.status = 200;
ctx.body = rslt;
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
"message": "获取资源目录失败"
}
}
}
//新增资源目录
async function postResourceCatalog(ctx) {
try {
const { name, code } = ctx.request.body;
const models = ctx.fs.dc.models;
const postOne = await models.ResourceCatalog.findOne({
where: { $or: [{ name: name }, { code: code }] }
});
if (postOne) {
ctx.status = 400;
ctx.body = { message: '该资源目录名称或代码已存在' }
} else {
await models.ResourceCatalog.create(ctx.request.body);
ctx.body = { message: '添加资源目录成功' }
ctx.status = 200;
}
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
"message": "添加资源目录失败"
}
}
}
//修改资源目录
async function putResourceCatalog(ctx) {
try {
const { id } = ctx.params;
const { name, code, description } = ctx.request.body;
const models = ctx.fs.dc.models;
let resourceCatalogInfo = await models.ResourceCatalog.findOne({ where: { id } });
if (resourceCatalogInfo) {
const putOne = await models.ResourceCatalog.findOne({ where: { id: { $not: id }, $or: [{ name: name }, { code: code }] } });
if (putOne) {
ctx.status = 400;
ctx.body = { message: '该资源目录名称或代码已存在' }
} else {
await models.ResourceCatalog.update(ctx.request.body, { where: { id: id } });
ctx.status = 200;
ctx.body = { message: '修改资源目录成功' }
}
} else {
ctx.status = 400;
ctx.body = { message: '该资源目录不存在' }
}
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
"message": "修改资源目录失败"
}
}
}
//删除资源目录
async function delResourceCatalog(ctx) {
const transaction = await ctx.fs.dc.orm.transaction();
try {
const models = ctx.fs.dc.models;
const { id } = ctx.params;
let resourceCatalogInfo = await models.ResourceCatalog.findOne({ where: { id } });
if (resourceCatalogInfo) {
let childResourceCatalogInfo = await models.ResourceCatalog.findOne({ where: { parent: id } });
let databaseInfo = await models.MetadataDatabase.findOne({ where: { catalog: id } });
let fileInfo = await models.MetadataFile.findOne({ where: { catalog: id } });
let restapiInfo = await models.MetadataRestapi.findOne({ where: { catalog: id } });
if (childResourceCatalogInfo || databaseInfo || fileInfo || restapiInfo) {
ctx.status = 400;
ctx.body = { message: '存在关联子类目录或元数据,请删除相关数据,再删除该资源目录' }
deletable = false;
}
}
if (deletable) {
await models.ResourceCatalog.destroy({
where: { id: id },
transaction
})
await transaction.commit();
ctx.status = 200;
ctx.body = { message: '删除资源目录成功' }
} else {
ctx.status = 400;
ctx.body = { message: '该资源目录不存在' }
}
} catch (error) {
await transaction.rollback();
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = { message: '删除资源目录失败' }
}
}
module.exports = {
getResourceCatalog,
postResourceCatalog,
putResourceCatalog,
delResourceCatalog
}

18
api/app/lib/routes/latestMetadata/index.js

@ -0,0 +1,18 @@
'use strict';
const latestMetadata = require('../../controllers/latestMetadata');
module.exports = function (app, router, opts) {
app.fs.api.logAttr['GET/resource-catalog'] = { content: '获取资源目录', visible: false };
router.get('/resource-catalog', latestMetadata.getResourceCatalog);
app.fs.api.logAttr['POST /resource-catalog'] = { content: '新增资源目录', visible: true };
router.post('/resource-catalog', latestMetadata.postResourceCatalog);
app.fs.api.logAttr['PUT /resource-catalog/:id'] = { content: '修改资源目录', visible: true };
router.put('/resource-catalog/:id', latestMetadata.putResourceCatalog);
app.fs.api.logAttr['DEL /resource-catalog/:id'] = { content: '删除资源目录', visible: true };
router.delete('/resource-catalog/:id', latestMetadata.delResourceCatalog);
};
Loading…
Cancel
Save