- 新增邮箱冲突检测:发送验证码前检查邮箱是否已被注册 - 优化用户体验:避免向已注册邮箱发送无用验证码 - 改进错误处理:返回409 Conflict状态码和明确错误信息 - 更新API文档:重新整理文档结构,突出前端开发要点 - 完善测试用例:添加邮箱冲突检测相关测试 - 版本升级:1.1.0 1.1.1 核心修改: - src/core/login_core/login_core.service.ts: 在sendEmailVerification方法中添加邮箱存在性检查 - src/business/auth/controllers/login.controller.ts: 正确处理409冲突状态码 - docs/api/api-documentation.md: 重新整理为精简实用的前端开发文档 - docs/api/openapi.yaml: 更新版本和接口描述 - test-register-fix.ps1: 添加邮箱冲突检测测试用例
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { ConfigService } from '@nestjs/config';
|
|
import { AppStatusResponseDto } from './business/shared';
|
|
|
|
/**
|
|
* 应用服务类
|
|
*
|
|
* 功能描述:
|
|
* - 提供应用基础服务
|
|
* - 返回应用运行状态信息
|
|
*
|
|
* @author angjustinl
|
|
* @version 1.0.0
|
|
* @since 2025-12-17
|
|
*/
|
|
@Injectable()
|
|
export class AppService {
|
|
private readonly startTime: number;
|
|
|
|
constructor(private readonly configService: ConfigService) {
|
|
this.startTime = Date.now();
|
|
}
|
|
|
|
/**
|
|
* 获取应用状态
|
|
*
|
|
* @returns 应用状态信息
|
|
*/
|
|
getStatus(): AppStatusResponseDto {
|
|
const isDatabaseConfigured = this.isDatabaseConfigured();
|
|
|
|
return {
|
|
service: 'Pixel Game Server',
|
|
version: '1.1.1',
|
|
status: 'running',
|
|
timestamp: new Date().toISOString(),
|
|
uptime: Math.floor((Date.now() - this.startTime) / 1000),
|
|
environment: this.configService.get<string>('NODE_ENV', 'development'),
|
|
storage_mode: isDatabaseConfigured ? 'database' : 'memory'
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 检查数据库配置是否完整
|
|
*
|
|
* @returns 是否配置了数据库
|
|
*/
|
|
private isDatabaseConfigured(): boolean {
|
|
const requiredEnvVars = ['DB_HOST', 'DB_PORT', 'DB_USERNAME', 'DB_PASSWORD', 'DB_NAME'];
|
|
return requiredEnvVars.every(varName => this.configService.get<string>(varName));
|
|
}
|
|
}
|