- 添加 AppController 测试用例,测试回调接口的错误处理 - 新增控制器、服务层、平台服务等全面的单元测试 - 优化增强模板控制器的错误处理和审核完成事件处理 - 添加数据库迁移脚本支持统一异步架构升级 - 完善 TypeScript 配置,添加 jest 类型支持 - 修复端到端测试,确保 API 响应格式正确性 - 所有测试通过 (109 个测试用例),覆盖率达到要求
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
import { Injectable, BadRequestException } from '@nestjs/common';
|
|
import { PlatformType } from '../../entities/platform-user.entity';
|
|
import { IContentModerationAdapter } from '../interfaces/content-moderation.interface';
|
|
import { DouyinContentAdapter } from '../adapters/douyin-content.adapter';
|
|
import { WechatContentAdapter } from '../adapters/wechat-content.adapter';
|
|
import { EnhancedWechatContentAdapter } from '../adapters/enhanced-wechat-content.adapter';
|
|
|
|
@Injectable()
|
|
export class ContentAdapterFactory {
|
|
private readonly adapters = new Map<
|
|
PlatformType,
|
|
IContentModerationAdapter
|
|
>();
|
|
|
|
constructor(
|
|
private readonly douyinAdapter: DouyinContentAdapter,
|
|
private readonly wechatAdapter: WechatContentAdapter,
|
|
private readonly enhancedWechatAdapter: EnhancedWechatContentAdapter,
|
|
) {
|
|
// 注册所有可用的审核适配器
|
|
this.adapters.set(PlatformType.BYTEDANCE, this.douyinAdapter);
|
|
|
|
// 🎯 使用增强版微信适配器实现统一异步模式
|
|
this.adapters.set(PlatformType.WECHAT, this.enhancedWechatAdapter);
|
|
}
|
|
|
|
/**
|
|
* 根据平台类型获取对应的审核适配器
|
|
*/
|
|
getAdapter(platform: PlatformType): IContentModerationAdapter {
|
|
const adapter = this.adapters.get(platform);
|
|
if (!adapter) {
|
|
throw new BadRequestException(`不支持的审核平台: ${platform}`);
|
|
}
|
|
return adapter;
|
|
}
|
|
|
|
/**
|
|
* 获取所有支持的平台列表
|
|
*/
|
|
getSupportedPlatforms(): PlatformType[] {
|
|
return Array.from(this.adapters.keys());
|
|
}
|
|
|
|
/**
|
|
* 检查平台是否支持审核
|
|
*/
|
|
isPlatformSupported(platform: PlatformType): boolean {
|
|
return this.adapters.has(platform);
|
|
}
|
|
|
|
/**
|
|
* 注册新的审核适配器(用于动态扩展)
|
|
*/
|
|
registerAdapter(
|
|
platform: PlatformType,
|
|
adapter: IContentModerationAdapter,
|
|
): void {
|
|
this.adapters.set(platform, adapter);
|
|
}
|
|
}
|