2 changed files with 133 additions and 0 deletions
@ -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 |
||||
|
} |
@ -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…
Reference in new issue