Skip to content

Commit e65ccac

Browse files
Merge pull request #1126 from merico-dev/reduce-complexity-of-preset-dashboard-script
Reduced complexity of upsert preset dashboard script
2 parents 1ba47af + 7b6a877 commit e65ccac

File tree

1 file changed

+8
-20
lines changed

1 file changed

+8
-20
lines changed

api/src/preset/scripts/configure_dashboards.ts

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import DashboardContentChangelog from '../../models/dashboard_content_changelog'
1212
import DashboardContent from '../../models/dashboard_content';
1313
import { DashboardContentChangelogService } from '../../services/dashboard_content_changelog.service';
1414
import { FIXED_ROLE_TYPES } from '../../services/role.service';
15-
import { Repository } from 'typeorm';
15+
import { QueryRunner, Repository } from 'typeorm';
1616
import { ensureDirSync } from 'fs-extra';
1717

1818
type Source = {
@@ -32,11 +32,7 @@ async function upsert() {
3232
const superadmin: Account = await queryRunner.manager
3333
.getRepository(Account)
3434
.findOneByOrFail({ role_id: FIXED_ROLE_TYPES.SUPERADMIN });
35-
const dashboardChangelogRepo = queryRunner.manager.getRepository(DashboardChangelog);
3635
const dashboardRepo = queryRunner.manager.getRepository(Dashboard);
37-
const dashboardContentChangelogRepo = queryRunner.manager.getRepository(DashboardContentChangelog);
38-
const dashboardContentRepo = queryRunner.manager.getRepository(DashboardContent);
39-
const dashboardPermissionRepo = queryRunner.manager.getRepository(DashboardPermission);
4036
const datasourceRepo = queryRunner.manager.getRepository(DataSource);
4137

4238
const basePath = path.join(__dirname, '../dashboards');
@@ -48,16 +44,7 @@ async function upsert() {
4844
const config: Record<string, any> = JSON.parse(readFileSync(path.join(basePath, files[i]), 'utf-8'));
4945
await checkConfigForErrors(datasourceRepo, config, errors);
5046
const name = dashboardNames[i];
51-
await upsertDashboard(
52-
dashboardRepo,
53-
dashboardPermissionRepo,
54-
dashboardContentRepo,
55-
dashboardChangelogRepo,
56-
dashboardContentChangelogRepo,
57-
name,
58-
config,
59-
superadmin.id,
60-
);
47+
await upsertDashboard(queryRunner, name, config, superadmin.id);
6148
}
6249
if (!_.isEmpty(errors)) {
6350
throw new Error(`Missing preset datasources: ${JSON.stringify(errors)}`);
@@ -119,15 +106,16 @@ async function checkConfigForErrors(
119106
}
120107

121108
async function upsertDashboard(
122-
dashboardRepo: Repository<Dashboard>,
123-
dashboardPermissionRepo: Repository<DashboardPermission>,
124-
dashboardContentRepo: Repository<DashboardContent>,
125-
dashboardChangelogRepo: Repository<DashboardChangelog>,
126-
dashboardContentChangelogRepo: Repository<DashboardContentChangelog>,
109+
queryRunner: QueryRunner,
127110
name: string,
128111
config: Record<string, any>,
129112
superadminId: string,
130113
) {
114+
const dashboardChangelogRepo = queryRunner.manager.getRepository(DashboardChangelog);
115+
const dashboardRepo = queryRunner.manager.getRepository(Dashboard);
116+
const dashboardContentChangelogRepo = queryRunner.manager.getRepository(DashboardContentChangelog);
117+
const dashboardContentRepo = queryRunner.manager.getRepository(DashboardContent);
118+
const dashboardPermissionRepo = queryRunner.manager.getRepository(DashboardPermission);
131119
let dashboard = await dashboardRepo.findOneBy({ name, is_preset: true });
132120
const originalDashboard: Dashboard | null = _.cloneDeep(dashboard);
133121
let isNew = false;

0 commit comments

Comments
 (0)