docs: 更新rules

This commit is contained in:
expressgy 2025-07-06 16:28:07 +08:00
parent 1575154bfb
commit 9f112c2ebc
3 changed files with 707 additions and 560 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,188 +0,0 @@
/**
* @file
* @author AI助手
* @date 2025-06-29
* @lastEditor AI Assistant
* @lastEditTime 2025-01-07
* @description
*/
/**
*
* @description
*/
export const ERROR_CODES = {
// 成功
SUCCESS: 'SUCCESS',
// 客户端错误 4xx
VALIDATION_ERROR: 'VALIDATION_ERROR', // 参数验证失败
UNAUTHORIZED: 'UNAUTHORIZED', // 未授权
FORBIDDEN: 'FORBIDDEN', // 禁止访问
NOT_FOUND: 'NOT_FOUND', // 资源不存在
METHOD_NOT_ALLOWED: 'METHOD_NOT_ALLOWED', // 方法不允许
CONFLICT: 'CONFLICT', // 资源冲突
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED', // 请求频率超限
// 业务错误 4xx
BUSINESS_ERROR: 'BUSINESS_ERROR', // 通用业务错误
USER_NOT_FOUND: 'USER_NOT_FOUND', // 用户不存在
USER_ALREADY_EXISTS: 'USER_ALREADY_EXISTS', // 用户已存在
INVALID_CREDENTIALS: 'INVALID_CREDENTIALS', // 凭据无效
TOKEN_EXPIRED: 'TOKEN_EXPIRED', // Token过期
TOKEN_INVALID: 'TOKEN_INVALID', // Token无效
INSUFFICIENT_PERMISSIONS: 'INSUFFICIENT_PERMISSIONS', // 权限不足
// 用户注册相关错误
USERNAME_EXISTS: 'USERNAME_EXISTS', // 用户名已存在
EMAIL_EXISTS: 'EMAIL_EXISTS', // 邮箱已存在
PASSWORD_MISMATCH: 'PASSWORD_MISMATCH', // 密码不匹配
CAPTCHA_ERROR: 'CAPTCHA_ERROR', // 验证码错误
EMAIL_SEND_FAILED: 'EMAIL_SEND_FAILED', // 邮件发送失败
// 用户激活相关错误
INVALID_ACTIVATION_TOKEN: 'INVALID_ACTIVATION_TOKEN', // 激活令牌无效
ALREADY_ACTIVATED: 'ALREADY_ACTIVATED', // 已经激活
// 用户登录相关错误
INVALID_PASSWORD: 'INVALID_PASSWORD', // 密码错误
ACCOUNT_NOT_ACTIVATED: 'ACCOUNT_NOT_ACTIVATED', // 账号未激活
ACCOUNT_LOCKED: 'ACCOUNT_LOCKED', // 账号被锁定
TOO_MANY_FAILED_ATTEMPTS: 'TOO_MANY_FAILED_ATTEMPTS', // 失败次数过多
TOO_MANY_ATTEMPTS: 'TOO_MANY_ATTEMPTS', // 登录次数过多
CAPTCHA_REQUIRED: 'CAPTCHA_REQUIRED', // 需要验证码
// 密码重置相关错误
INVALID_RESET_TOKEN: 'INVALID_RESET_TOKEN', // 重置令牌无效
// 系统状态
NOT_IMPLEMENTED: 'NOT_IMPLEMENTED', // 功能未实现
// 服务器错误 5xx
INTERNAL_ERROR: 'INTERNAL_ERROR', // 内部服务器错误
DATABASE_ERROR: 'DATABASE_ERROR', // 数据库错误
REDIS_ERROR: 'REDIS_ERROR', // Redis错误
EXTERNAL_API_ERROR: 'EXTERNAL_API_ERROR', // 外部API错误
SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE', // 服务不可用
} as const;
/**
*
*/
export type ErrorCode = typeof ERROR_CODES[keyof typeof ERROR_CODES];
/**
* HTTP状态码的映射
*/
export const ERROR_CODE_TO_HTTP_STATUS: Record<ErrorCode, number> = {
// 成功
[ERROR_CODES.SUCCESS]: 200,
// 客户端错误 4xx
[ERROR_CODES.VALIDATION_ERROR]: 400,
[ERROR_CODES.UNAUTHORIZED]: 401,
[ERROR_CODES.FORBIDDEN]: 403,
[ERROR_CODES.NOT_FOUND]: 404,
[ERROR_CODES.METHOD_NOT_ALLOWED]: 405,
[ERROR_CODES.CONFLICT]: 409,
[ERROR_CODES.RATE_LIMIT_EXCEEDED]: 429,
// 业务错误 4xx
[ERROR_CODES.BUSINESS_ERROR]: 400,
[ERROR_CODES.USER_NOT_FOUND]: 404,
[ERROR_CODES.USER_ALREADY_EXISTS]: 409,
[ERROR_CODES.INVALID_CREDENTIALS]: 401,
[ERROR_CODES.TOKEN_EXPIRED]: 401,
[ERROR_CODES.TOKEN_INVALID]: 401,
[ERROR_CODES.INSUFFICIENT_PERMISSIONS]: 403,
// 用户注册相关错误
[ERROR_CODES.USERNAME_EXISTS]: 409,
[ERROR_CODES.EMAIL_EXISTS]: 409,
[ERROR_CODES.PASSWORD_MISMATCH]: 400,
[ERROR_CODES.CAPTCHA_ERROR]: 400,
[ERROR_CODES.EMAIL_SEND_FAILED]: 500,
// 用户激活相关错误
[ERROR_CODES.INVALID_ACTIVATION_TOKEN]: 400,
[ERROR_CODES.ALREADY_ACTIVATED]: 409,
// 用户登录相关错误
[ERROR_CODES.INVALID_PASSWORD]: 401,
[ERROR_CODES.ACCOUNT_NOT_ACTIVATED]: 403,
[ERROR_CODES.ACCOUNT_LOCKED]: 403,
[ERROR_CODES.TOO_MANY_FAILED_ATTEMPTS]: 429,
[ERROR_CODES.TOO_MANY_ATTEMPTS]: 429,
[ERROR_CODES.CAPTCHA_REQUIRED]: 400,
// 密码重置相关错误
[ERROR_CODES.INVALID_RESET_TOKEN]: 400,
// 系统状态
[ERROR_CODES.NOT_IMPLEMENTED]: 501,
// 服务器错误 5xx
[ERROR_CODES.INTERNAL_ERROR]: 500,
[ERROR_CODES.DATABASE_ERROR]: 500,
[ERROR_CODES.REDIS_ERROR]: 500,
[ERROR_CODES.EXTERNAL_API_ERROR]: 502,
[ERROR_CODES.SERVICE_UNAVAILABLE]: 503,
};
/**
*
*/
export const ERROR_CODE_MESSAGES: Record<ErrorCode, string> = {
// 成功
[ERROR_CODES.SUCCESS]: '操作成功',
// 客户端错误
[ERROR_CODES.VALIDATION_ERROR]: '请求参数验证失败',
[ERROR_CODES.UNAUTHORIZED]: '未授权访问',
[ERROR_CODES.FORBIDDEN]: '禁止访问',
[ERROR_CODES.NOT_FOUND]: '请求的资源不存在',
[ERROR_CODES.METHOD_NOT_ALLOWED]: '请求方法不被允许',
[ERROR_CODES.CONFLICT]: '请求与当前资源状态冲突',
[ERROR_CODES.RATE_LIMIT_EXCEEDED]: '请求频率超过限制',
// 业务错误
[ERROR_CODES.BUSINESS_ERROR]: '业务处理失败',
[ERROR_CODES.USER_NOT_FOUND]: '用户不存在',
[ERROR_CODES.USER_ALREADY_EXISTS]: '用户已存在',
[ERROR_CODES.INVALID_CREDENTIALS]: '用户名或密码错误',
[ERROR_CODES.TOKEN_EXPIRED]: '访问令牌已过期',
[ERROR_CODES.TOKEN_INVALID]: '访问令牌无效',
[ERROR_CODES.INSUFFICIENT_PERMISSIONS]: '权限不足',
// 用户注册相关错误
[ERROR_CODES.USERNAME_EXISTS]: '用户名已存在',
[ERROR_CODES.EMAIL_EXISTS]: '邮箱已被注册',
[ERROR_CODES.PASSWORD_MISMATCH]: '两次输入的密码不一致',
[ERROR_CODES.CAPTCHA_ERROR]: '验证码错误或已过期',
[ERROR_CODES.EMAIL_SEND_FAILED]: '邮件发送失败',
// 用户激活相关错误
[ERROR_CODES.INVALID_ACTIVATION_TOKEN]: '激活令牌无效或已过期',
[ERROR_CODES.ALREADY_ACTIVATED]: '账号已经激活',
// 用户登录相关错误
[ERROR_CODES.INVALID_PASSWORD]: '密码错误',
[ERROR_CODES.ACCOUNT_NOT_ACTIVATED]: '账号未激活',
[ERROR_CODES.ACCOUNT_LOCKED]: '账号已被锁定',
[ERROR_CODES.TOO_MANY_FAILED_ATTEMPTS]: '登录失败次数过多',
[ERROR_CODES.TOO_MANY_ATTEMPTS]: '登录次数过多,请稍后再试',
[ERROR_CODES.CAPTCHA_REQUIRED]: '请输入验证码',
// 密码重置相关错误
[ERROR_CODES.INVALID_RESET_TOKEN]: '重置令牌无效或已过期',
// 系统状态
[ERROR_CODES.NOT_IMPLEMENTED]: '功能未实现',
// 服务器错误
[ERROR_CODES.INTERNAL_ERROR]: '服务器内部错误',
[ERROR_CODES.DATABASE_ERROR]: '数据库操作失败',
[ERROR_CODES.REDIS_ERROR]: 'Redis操作失败',
[ERROR_CODES.EXTERNAL_API_ERROR]: '外部服务调用失败',
[ERROR_CODES.SERVICE_UNAVAILABLE]: '服务暂时不可用',
};

View File

@ -77,12 +77,12 @@
- [x] 2.4 扩展auth.controller.ts - 实现激活路由 - [x] 2.4 扩展auth.controller.ts - 实现激活路由
- [x] 2.5 扩展auth.test.ts - 编写激活测试用例 - [x] 2.5 扩展auth.test.ts - 编写激活测试用例
- [ ] 3.0 POST /auth/login - 用户登录接口 - [x] 3.0 POST /auth/login - 用户登录接口
- [x] 3.1 扩展auth.schema.ts - 定义登录Schema - [x] 3.1 扩展auth.schema.ts - 定义登录Schema
- [x] 3.2 扩展auth.response.ts - 定义登录响应格式 - [x] 3.2 扩展auth.response.ts - 定义登录响应格式
- [x] 3.3 扩展auth.service.ts - 实现登录业务逻辑 - [x] 3.3 扩展auth.service.ts - 实现登录业务逻辑
- [x] 3.4 扩展auth.controller.ts - 实现登录路由 - [x] 3.4 扩展auth.controller.ts - 实现登录路由
- [ ] 3.5 扩展auth.test.ts - 编写登录测试用例 - [x] 3.5 扩展auth.test.ts - 编写登录测试用例
- [ ] 4.0 POST /auth/refresh - Token刷新接口 - [ ] 4.0 POST /auth/refresh - Token刷新接口
- [ ] 4.1 扩展auth.schema.ts - 定义刷新Schema - [ ] 4.1 扩展auth.schema.ts - 定义刷新Schema