Skip to content

Commit 1fc3ba7

Browse files
committed
Add dashboard and widgets entities and functionality, and tests
1 parent a23e875 commit 1fc3ba7

44 files changed

Lines changed: 3072 additions & 223 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/src/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { DatabaseModule } from './shared/database/database.module.js';
4343
import { GetHelloUseCase } from './use-cases-app/get-hello.use.case.js';
4444
import { PersonalTableSettingsModule } from './entities/table-settings/personal-table-settings/personal-table-settings.module.js';
4545
import { SavedDbQueryModule } from './entities/visualizations/saved-db-query/saved-db-query.module.js';
46+
import { DashboardModule } from './entities/visualizations/dashboard/dashboards.module.js';
4647

4748
@Module({
4849
imports: [
@@ -90,6 +91,7 @@ import { SavedDbQueryModule } from './entities/visualizations/saved-db-query/sav
9091
PersonalTableSettingsModule,
9192
S3WidgetModule,
9293
SavedDbQueryModule,
94+
DashboardModule,
9395
],
9496
controllers: [AppController],
9597
providers: [

backend/src/common/application/global-database-context.interface.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ import { IPersonalTableSettingsRepository } from '../../entities/table-settings/
5858
import { PersonalTableSettingsEntity } from '../../entities/table-settings/personal-table-settings/personal-table-settings.entity.js';
5959
import { SavedDbQueryEntity } from '../../entities/visualizations/saved-db-query/saved-db-query.entity.js';
6060
import { ISavedDbQueryRepository } from '../../entities/visualizations/saved-db-query/repository/saved-db-query.repository.interface.js';
61+
import { DashboardEntity } from '../../entities/visualizations/dashboard/dashboard.entity.js';
62+
import { DashboardWidgetEntity } from '../../entities/visualizations/dashboard/dashboard-widget.entity.js';
63+
import {
64+
IDashboardRepository,
65+
IDashboardWidgetRepository,
66+
} from '../../entities/visualizations/dashboard/repository/dashboard.repository.interface.js';
6167

6268
export interface IGlobalDatabaseContext extends IDatabaseContext {
6369
userRepository: Repository<UserEntity> & IUserRepository;
@@ -98,4 +104,6 @@ export interface IGlobalDatabaseContext extends IDatabaseContext {
98104
signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
99105
personalTableSettingsRepository: Repository<PersonalTableSettingsEntity> & IPersonalTableSettingsRepository;
100106
savedDbQueryRepository: Repository<SavedDbQueryEntity> & ISavedDbQueryRepository;
107+
dashboardRepository: Repository<DashboardEntity> & IDashboardRepository;
108+
dashboardWidgetRepository: Repository<DashboardWidgetEntity> & IDashboardWidgetRepository;
101109
}

backend/src/common/application/global-database-context.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,14 @@ import { personalTableSettingsCustomRepositoryExtension } from '../../entities/t
105105
import { SavedDbQueryEntity } from '../../entities/visualizations/saved-db-query/saved-db-query.entity.js';
106106
import { ISavedDbQueryRepository } from '../../entities/visualizations/saved-db-query/repository/saved-db-query.repository.interface.js';
107107
import { savedDbQueryCustomRepositoryExtension } from '../../entities/visualizations/saved-db-query/repository/saved-db-query-custom-repository-extension.js';
108+
import { DashboardEntity } from '../../entities/visualizations/dashboard/dashboard.entity.js';
109+
import { DashboardWidgetEntity } from '../../entities/visualizations/dashboard/dashboard-widget.entity.js';
110+
import {
111+
IDashboardRepository,
112+
IDashboardWidgetRepository,
113+
} from '../../entities/visualizations/dashboard/repository/dashboard.repository.interface.js';
114+
import { dashboardCustomRepositoryExtension } from '../../entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.js';
115+
import { dashboardWidgetCustomRepositoryExtension } from '../../entities/visualizations/dashboard/repository/dashboard-widget-custom-repository-extension.js';
108116

109117
@Injectable({ scope: Scope.REQUEST })
110118
export class GlobalDatabaseContext implements IGlobalDatabaseContext {
@@ -148,6 +156,8 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
148156
private _signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
149157
private _personalTableSettingsRepository: Repository<PersonalTableSettingsEntity> & IPersonalTableSettingsRepository;
150158
private _savedDbQueryRepository: Repository<SavedDbQueryEntity> & ISavedDbQueryRepository;
159+
private _dashboardRepository: Repository<DashboardEntity> & IDashboardRepository;
160+
private _dashboardWidgetRepository: Repository<DashboardWidgetEntity> & IDashboardWidgetRepository;
151161

152162
public constructor(
153163
@Inject(BaseType.DATA_SOURCE)
@@ -251,6 +261,12 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
251261
this._savedDbQueryRepository = this.appDataSource
252262
.getRepository(SavedDbQueryEntity)
253263
.extend(savedDbQueryCustomRepositoryExtension);
264+
this._dashboardRepository = this.appDataSource
265+
.getRepository(DashboardEntity)
266+
.extend(dashboardCustomRepositoryExtension);
267+
this._dashboardWidgetRepository = this.appDataSource
268+
.getRepository(DashboardWidgetEntity)
269+
.extend(dashboardWidgetCustomRepositoryExtension);
254270
}
255271

256272
public get userRepository(): Repository<UserEntity> & IUserRepository {
@@ -407,6 +423,14 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
407423
return this._savedDbQueryRepository;
408424
}
409425

426+
public get dashboardRepository(): Repository<DashboardEntity> & IDashboardRepository {
427+
return this._dashboardRepository;
428+
}
429+
430+
public get dashboardWidgetRepository(): Repository<DashboardWidgetEntity> & IDashboardWidgetRepository {
431+
return this._dashboardWidgetRepository;
432+
}
433+
410434
public startTransaction(): Promise<void> {
411435
this._queryRunner = this.appDataSource.createQueryRunner();
412436
this._queryRunner.startTransaction();

backend/src/common/data-injection.tokens.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,13 @@ export enum UseCaseType {
188188
DELETE_SAVED_DB_QUERY = 'DELETE_SAVED_DB_QUERY',
189189
EXECUTE_SAVED_DB_QUERY = 'EXECUTE_SAVED_DB_QUERY',
190190
TEST_DB_QUERY = 'TEST_DB_QUERY',
191+
192+
CREATE_DASHBOARD = 'CREATE_DASHBOARD',
193+
UPDATE_DASHBOARD = 'UPDATE_DASHBOARD',
194+
FIND_DASHBOARD = 'FIND_DASHBOARD',
195+
FIND_ALL_DASHBOARDS = 'FIND_ALL_DASHBOARDS',
196+
DELETE_DASHBOARD = 'DELETE_DASHBOARD',
197+
CREATE_DASHBOARD_WIDGET = 'CREATE_DASHBOARD_WIDGET',
198+
UPDATE_DASHBOARD_WIDGET = 'UPDATE_DASHBOARD_WIDGET',
199+
DELETE_DASHBOARD_WIDGET = 'DELETE_DASHBOARD_WIDGET',
191200
}

0 commit comments

Comments
 (0)