|
|
const { DeptDocument } = require("../models/deptDocument");const { validatedRequest } = require("../utils/middleware/validatedRequest");const { strictMultiUserRoleValid, ROLES,} = require("../utils/middleware/multiUserProtected");
function deptDocumentEndpoints(app) { if (!app) return;
// 获取组织机构文档列表
app.get( "/deptDocument/list", [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], async (_request, response) => { try { const deptDocuments = await DeptDocument.where(); response.status(200).json({ deptDocuments }); } catch (e) { console.error(e); response.sendStatus(500).end(); } } );
// 添加组织机构文档
app.post( "/deptDocument/add", [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], async (request, response) => { try { const documentData = request.body; // 获取请求体中的文档数据
// 检查文档路径是否唯一
const isDocpathUnique = await DeptDocument.checkDocpathUnique( documentData.docpath ); if (!isDocpathUnique) { return response.status(400).json({ success: false, message: `文档路径 '${documentData.docpath}' 已存在`, }); }
// 插入文档数据
const { deptDocument, error } = await DeptDocument.create(documentData); if (error) { return response.status(500).json({ success: false, message: "添加组织机构文档失败", error: error, }); }
// 返回成功响应
response.status(200).json({ success: true, data: deptDocument, }); } catch (error) { console.error("添加组织机构文档失败:", error); response.status(500).json({ success: false, message: "添加组织机构文档失败,服务器内部错误", }); } } );
// 编辑组织机构文档
app.post( "/deptDocument/edit", [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], async (request, response) => { try { const documentData = request.body; // 获取请求体中的文档数据
// 检查文档是否存在
const existingDocument = await DeptDocument.get({ id: documentData.id }); if (!existingDocument) { return response.status(404).json({ success: false, message: "文档不存在", }); }
// 更新文档数据
const { success, error, deptDocument } = await DeptDocument.update( documentData.id, documentData ); if (!success) { return response.status(500).json({ success: false, message: "编辑组织机构文档失败", error: error, }); }
// 返回成功响应
response.status(200).json({ success: true, data: deptDocument, }); } catch (error) { console.error("编辑组织机构文档失败:", error); response.status(500).json({ success: false, message: "编辑组织机构文档失败,服务器内部错误", }); } } );
// 删除组织机构文档
app.delete( "/deptDocument/:id", [validatedRequest, strictMultiUserRoleValid([ROLES.admin, ROLES.manager])], async (request, response) => { try { const documentId = parseInt(request.params.id); // 获取文档 ID
// 检查文档是否存在
const existingDocument = await DeptDocument.get({ id: documentId }); if (!existingDocument) { return response.status(404).json({ success: false, message: "文档不存在", }); }
// 删除文档
const success = await DeptDocument.delete({ id: documentId }); if (!success) { return response.status(500).json({ success: false, message: "删除组织机构文档失败", }); }
// 返回成功响应
response.status(200).json({ success: true, message: "文档删除成功", }); } catch (error) { console.error("删除组织机构文档失败:", error); response.status(500).json({ success: false, message: "删除组织机构文档失败,服务器内部错误", }); } } );}
module.exports = { deptDocumentEndpoints };
|