|
|
const { DeptUsers } = require("../models/deptUsers");const { validatedRequest } = require("../utils/middleware/validatedRequest");const { strictMultiUserRoleValid, ROLES,} = require("../utils/middleware/multiUserProtected");
function deptUsersEndpoints(app) { if (!app) return;
// 获取部门用户关联列表
app.get( "/deptUsers/list", [validatedRequest, strictMultiUserRoleValid([ROLES.admin])], async (_request, response) => { try { const deptUsers = await DeptUsers.where(); response.status(200).json({ deptUsers }); } catch (e) { console.error(e); response.sendStatus(500).end(); } } );
// 添加部门用户关联
app.post( "/deptUsers/add", [validatedRequest, strictMultiUserRoleValid([ROLES.admin])], async (request, response) => { try { const deptUserData = request.body; // 获取请求体中的数据
// 插入部门用户关联数据
const { deptUser, error } = await DeptUsers.create(deptUserData); if (error) { return response.status(500).json({ success: false, message: "添加部门用户关联失败", error: error, }); }
// 返回成功响应
response.status(200).json({ success: true, data: deptUser, }); } catch (error) { console.error("添加部门用户关联失败:", error); response.status(500).json({ success: false, message: "添加部门用户关联失败,服务器内部错误", }); } } );
// 编辑部门用户关联
app.post( "/deptUsers/edit", [validatedRequest, strictMultiUserRoleValid([ROLES.admin])], async (request, response) => { try { const deptUserData = request.body; // 获取请求体中的数据
// 检查关联是否存在
const existingDeptUser = await DeptUsers.get({ id: deptUserData.id }); if (!existingDeptUser) { return response.status(404).json({ success: false, message: "部门用户关联不存在", }); }
// 更新部门用户关联
const { success, error, deptUser } = await DeptUsers.update( deptUserData.id, deptUserData ); if (!success) { return response.status(500).json({ success: false, message: "编辑部门用户关联失败", error: error, }); }
// 返回成功响应
response.status(200).json({ success: true, data: deptUser, }); } catch (error) { console.error("编辑部门用户关联失败:", error); response.status(500).json({ success: false, message: "编辑部门用户关联失败,服务器内部错误", }); } } );
// 删除部门用户关联
app.delete( "/deptUsers/:id", [validatedRequest, strictMultiUserRoleValid([ROLES.admin])], async (request, response) => { try { const id = parseInt(request.params.id); // 获取关联 ID
// 检查关联是否存在
const existingDeptUser = await DeptUsers.get({ id }); if (!existingDeptUser) { return response.status(404).json({ success: false, message: "部门用户关联不存在", }); }
// 删除部门用户关联
const success = await DeptUsers.delete({ id }); 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 = { deptUsersEndpoints };
|