Files
whale-town-end/src/core/zulip/zulip-core.module.ts
moyin 2d10131838 refactor:重构Zulip模块按业务功能模块化架构
- 将技术实现服务从business层迁移到core层
- 创建src/core/zulip/核心服务模块,包含API客户端、连接池等技术服务
- 保留src/business/zulip/业务逻辑,专注游戏相关的业务规则
- 通过依赖注入实现业务层与核心层的解耦
- 更新模块导入关系,确保架构分层清晰

重构后的架构符合单一职责原则,提高了代码的可维护性和可测试性
2025-12-31 15:44:36 +08:00

68 lines
1.8 KiB
TypeScript

/**
* Zulip核心服务模块
*
* 功能描述:
* - 提供Zulip技术实现相关的核心服务
* - 封装第三方API调用和技术细节
* - 为业务层提供抽象接口
*
* @author angjustinl
* @version 1.0.0
* @since 2025-12-31
*/
import { Module } from '@nestjs/common';
import { ZulipClientService } from './services/zulip_client.service';
import { ZulipClientPoolService } from './services/zulip_client_pool.service';
import { ConfigManagerService } from './services/config_manager.service';
import { ApiKeySecurityService } from './services/api_key_security.service';
import { ErrorHandlerService } from './services/error_handler.service';
import { MonitoringService } from './services/monitoring.service';
import { StreamInitializerService } from './services/stream_initializer.service';
import { RedisModule } from '../redis/redis.module';
@Module({
imports: [
// Redis模块 - ApiKeySecurityService需要REDIS_SERVICE
RedisModule,
],
providers: [
// 核心客户端服务
{
provide: 'ZULIP_CLIENT_SERVICE',
useClass: ZulipClientService,
},
{
provide: 'ZULIP_CLIENT_POOL_SERVICE',
useClass: ZulipClientPoolService,
},
{
provide: 'ZULIP_CONFIG_SERVICE',
useClass: ConfigManagerService,
},
// 辅助服务
ApiKeySecurityService,
ErrorHandlerService,
MonitoringService,
StreamInitializerService,
// 直接提供类(用于内部依赖)
ZulipClientService,
ZulipClientPoolService,
ConfigManagerService,
],
exports: [
// 导出接口标识符供业务层使用
'ZULIP_CLIENT_SERVICE',
'ZULIP_CLIENT_POOL_SERVICE',
'ZULIP_CONFIG_SERVICE',
// 导出辅助服务
ApiKeySecurityService,
ErrorHandlerService,
MonitoringService,
StreamInitializerService,
],
})
export class ZulipCoreModule {}