forked from wangziqi/gongxue-base
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import { Controller, Get, Post, Body, Param, UseGuards } from '@nestjs/common';
|
|
import { JwtAuthGuard } from '../../auth/guards/jwt-auth.guard';
|
|
import { RequirePermission } from '../../auth/decorators/permission.decorator';
|
|
import { IntegrationConfigService } from './integration-config.service';
|
|
import { SaveIntegrationConfigDto, TestIntegrationConfigDto } from './dto/config.dto';
|
|
|
|
@Controller('integration/config')
|
|
@UseGuards(JwtAuthGuard)
|
|
export class IntegrationConfigController {
|
|
constructor(private readonly service: IntegrationConfigService) {}
|
|
|
|
/** 获取全部配置(脱敏) */
|
|
@Get()
|
|
@RequirePermission('integration:read')
|
|
async getConfigs() {
|
|
const data = await this.service.getThirdConfig();
|
|
return { success: true, data };
|
|
}
|
|
|
|
/** 按类型获取单个配置 */
|
|
@Get(':type')
|
|
@RequirePermission('integration:read')
|
|
async getConfig(@Param('type') type: string) {
|
|
const data = await this.service.getConfigByType(type.toUpperCase());
|
|
if (!data) {
|
|
return { success: false, message: `未找到 ${type} 的配置` };
|
|
}
|
|
return { success: true, data };
|
|
}
|
|
|
|
/** 保存配置 */
|
|
@Post()
|
|
@RequirePermission('integration:trigger')
|
|
async saveConfig(@Body() body: SaveIntegrationConfigDto) {
|
|
await this.service.saveConfig(body);
|
|
return { success: true, message: '配置已保存' };
|
|
}
|
|
|
|
/** 测试连接 */
|
|
@Post('test')
|
|
@RequirePermission('integration:read')
|
|
async testConnection(@Body() body: TestIntegrationConfigDto) {
|
|
const success = await this.service.testConnection(body.type, body.config);
|
|
return { success, message: success ? '连接成功' : '连接失败,请检查配置信息' };
|
|
}
|
|
}
|