You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.2 KiB
146 lines
4.2 KiB
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 };
|