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

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 };