UNPKG

env-manage-plugin

Version:

A dev env plugin that integrates an Express server with request proxying capabilities.

107 lines (106 loc) 4.24 kB
import { envLogger } from "../utils/logger.js"; /** * 密码控制器 * 负责处理与密码相关的HTTP请求,作为请求入口层: * - 解析并验证请求参数 * - 调用对应的服务层方法处理业务逻辑 * - 格式化并返回响应结果 * - 统一错误处理 */ class PasswordController { /** * 构造函数 - 注入密码服务实例 * @param private readonly passwordService - 密码服务实例,处理核心业务逻辑 */ constructor(passwordService) { this.passwordService = passwordService; } /** * 获取指定环境的密码列表 * @description 处理查询指定环境所有密码的GET请求 * @param req - Express请求对象,包含环境ID(在params中) * @param res - Express响应对象,用于返回密码列表 * @param next - Express下一步中间件函数,用于错误处理 */ handleGetList(req, res, next) { try { const envId = req.params.envId; envLogger.info({ envId }, "接收密码列表查询请求"); // 调用服务层获取数据 const list = this.passwordService.handleGetByEnvId(envId); // 返回成功响应(包含列表数据) res.success({ list, total: list.length }); } catch (error) { envLogger.error(error, "密码列表查询请求处理失败"); next(error); } } /** * 新增密码 * @description 处理创建新密码的POST请求 * @param req - Express请求对象,包含待创建的密码数据(在req.dto中) * @param res - Express响应对象,用于返回处理结果 * @param next - Express下一步中间件函数,用于错误处理 */ handleAdd(req, res, next) { try { // 验证请求数据 const passwordData = req.dto; envLogger.info({ passwordData: { ...passwordData, password: "***" } }, "接收新增密码请求"); // 调用服务层处理业务 const newPassword = this.passwordService.handleAdd(passwordData); // 返回成功响应 res.success({ message: "密码添加成功", data: newPassword }); } catch (error) { envLogger.error(error, "新增密码请求处理失败"); next(error); } } /** * 更新密码 * @description 处理更新密码的POST/PUT请求 * @param req - Express请求对象,包含待更新的密码数据(在req.dto中) * @param res - Express响应对象,用于返回处理结果 * @param next - Express下一步中间件函数,用于错误处理 */ handleUpdate(req, res, next) { try { // 验证请求数据 const passwordData = req.dto; envLogger.info({ passwordData: { ...passwordData, password: "***" } }, "接收更新密码请求"); // 调用服务层处理业务 const updatedPassword = this.passwordService.handleUpdate(passwordData); // 返回成功响应 res.success({ message: "密码更新成功", data: updatedPassword }); } catch (error) { envLogger.error(error, "更新密码请求处理失败"); next(error); } } /** * 删除密码 * @description 处理删除密码的POST/DELETE请求 * @param req - Express请求对象,包含待删除密码的ID(在req.dto中) * @param res - Express响应对象,用于返回处理结果 * @param next - Express下一步中间件函数,用于错误处理 */ handleDelete(req, res, next) { try { // 验证请求数据 const passwordData = req.dto; envLogger.info({ passwordData }, "接收删除密码请求"); // 调用服务层处理业务 this.passwordService.handleDelete(passwordData); // 返回成功响应 res.success({ message: "密码删除成功" }); } catch (error) { envLogger.error(error, "删除密码请求处理失败"); next(error); } } } export { PasswordController };