This commit is contained in:
xiaojunnuo
2024-12-04 12:36:17 +08:00
parent 6aa487269c
commit 2aefca3813
12 changed files with 92 additions and 27 deletions

View File

@@ -141,6 +141,12 @@ export class NotificationController extends CrudController<NotificationService>
return this.ok(res);
}
@Post('/getOrCreateDefault', { summary: Constants.per.authOnly })
async getOrCreateDefault(@Body('email') email: string) {
const res = await this.service.getOrCreateDefault(email, this.getUserId());
return this.ok(res);
}
@Post('/options', { summary: Constants.per.authOnly })
async options() {
const res = await this.service.list({

View File

@@ -106,4 +106,22 @@ export class NotificationService extends BaseService<NotificationEntity> {
}
);
}
async getOrCreateDefault(email: string, userId: any) {
const defaultConfig = await this.getDefault(userId);
if (defaultConfig) {
return defaultConfig;
}
const setting = {
receivers: [email],
};
const res = await this.repository.save({
userId,
type: 'email',
name: '邮件通知',
setting: JSON.stringify(setting),
isDefault: true,
});
return this.buildNotificationInstanceConfig(res);
}
}

View File

@@ -1,10 +1,10 @@
import { Config, Inject, Provide, Scope, ScopeEnum, sleep } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { In, MoreThan, Repository } from 'typeorm';
import { BaseService, NeedVIPException, PageReq, SysPublicSettings, SysSettingsService } from '@certd/lib-server';
import { BaseService, NeedVIPException, PageReq, SysPublicSettings, SysSettingsService, SysSiteInfo } from '@certd/lib-server';
import { PipelineEntity } from '../entity/pipeline.js';
import { PipelineDetail } from '../entity/vo/pipeline-detail.js';
import { Executor, Pipeline, ResultType, RunHistory, UserInfo } from '@certd/pipeline';
import { Executor, Pipeline, ResultType, RunHistory, SysInfo, UserInfo } from '@certd/pipeline';
import { AccessService } from './access-service.js';
import { DbStorage } from './db-storage.js';
import { StorageService } from './storage-service.js';
@@ -21,7 +21,7 @@ import { CnameProxyService } from './cname-proxy-service.js';
import { PluginConfigGetter } from '../../plugin/service/plugin-config-getter.js';
import dayjs from 'dayjs';
import { DbAdapter } from '../../db/index.js';
import { isPlus } from '@certd/plus-core';
import { isComm, isPlus } from '@certd/plus-core';
import { logger } from '@certd/basic';
import { UrlService } from './url-service.js';
import { NotificationService } from './notification-service.js';
@@ -391,9 +391,15 @@ export class PipelineService extends BaseService<PipelineEntity> {
id: userId,
role: userIsAdmin ? 'admin' : 'user',
};
const accessGetter = new AccessGetter(userId, this.accessService.getById.bind(this.accessService));
const cnameProxyService = new CnameProxyService(userId, this.cnameRecordService.getWithAccessByDomain.bind(this.cnameRecordService));
const notificationGetter = new NotificationGetter(userId, this.notificationService);
const sysInfo: SysInfo = {};
if (isComm()) {
const siteInfo = await this.sysSettingsService.getSetting<SysSiteInfo>(SysSiteInfo);
sysInfo.title = siteInfo.title;
}
const executor = new Executor({
user,
pipeline,
@@ -406,6 +412,7 @@ export class PipelineService extends BaseService<PipelineEntity> {
urlService: this.urlService,
notificationService: notificationGetter,
fileRootDir: this.certdConfig.fileRootDir,
sysInfo,
});
try {
runningTasks.set(historyId, executor);