Skip to content

Commit 4d809c6

Browse files
authored
Merge pull request #1501 from rocket-admin/backend_dashboards
Add dashboard and widgets entities and functionality, and tests
2 parents 1a66fe4 + c2520a0 commit 4d809c6

48 files changed

Lines changed: 4694 additions & 1819 deletions

File tree

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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ 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';
47+
import { DashboardWidgetModule } from './entities/visualizations/dashboard-widget/dashboard-widget.module.js';
4648

4749
@Module({
4850
imports: [
@@ -90,6 +92,8 @@ import { SavedDbQueryModule } from './entities/visualizations/saved-db-query/sav
9092
PersonalTableSettingsModule,
9193
S3WidgetModule,
9294
SavedDbQueryModule,
95+
DashboardModule,
96+
DashboardWidgetModule,
9397
],
9498
controllers: [AppController],
9599
providers: [

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ 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-widget/dashboard-widget.entity.js';
63+
import { IDashboardRepository } from '../../entities/visualizations/dashboard/repository/dashboard.repository.interface.js';
64+
import { IDashboardWidgetRepository } from '../../entities/visualizations/dashboard-widget/repository/dashboard-widget.repository.interface.js';
6165

6266
export interface IGlobalDatabaseContext extends IDatabaseContext {
6367
userRepository: Repository<UserEntity> & IUserRepository;
@@ -98,4 +102,6 @@ export interface IGlobalDatabaseContext extends IDatabaseContext {
98102
signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
99103
personalTableSettingsRepository: Repository<PersonalTableSettingsEntity> & IPersonalTableSettingsRepository;
100104
savedDbQueryRepository: Repository<SavedDbQueryEntity> & ISavedDbQueryRepository;
105+
dashboardRepository: Repository<DashboardEntity> & IDashboardRepository;
106+
dashboardWidgetRepository: Repository<DashboardWidgetEntity> & IDashboardWidgetRepository;
101107
}

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ 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-widget/dashboard-widget.entity.js';
110+
import { IDashboardRepository } from '../../entities/visualizations/dashboard/repository/dashboard.repository.interface.js';
111+
import { IDashboardWidgetRepository } from '../../entities/visualizations/dashboard-widget/repository/dashboard-widget.repository.interface.js';
112+
import { dashboardCustomRepositoryExtension } from '../../entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.js';
113+
import { dashboardWidgetCustomRepositoryExtension } from '../../entities/visualizations/dashboard-widget/repository/dashboard-widget-custom-repository-extension.js';
108114

109115
@Injectable({ scope: Scope.REQUEST })
110116
export class GlobalDatabaseContext implements IGlobalDatabaseContext {
@@ -148,6 +154,8 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
148154
private _signInAuditRepository: Repository<SignInAuditEntity> & ISignInAuditRepository;
149155
private _personalTableSettingsRepository: Repository<PersonalTableSettingsEntity> & IPersonalTableSettingsRepository;
150156
private _savedDbQueryRepository: Repository<SavedDbQueryEntity> & ISavedDbQueryRepository;
157+
private _dashboardRepository: Repository<DashboardEntity> & IDashboardRepository;
158+
private _dashboardWidgetRepository: Repository<DashboardWidgetEntity> & IDashboardWidgetRepository;
151159

152160
public constructor(
153161
@Inject(BaseType.DATA_SOURCE)
@@ -251,6 +259,12 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
251259
this._savedDbQueryRepository = this.appDataSource
252260
.getRepository(SavedDbQueryEntity)
253261
.extend(savedDbQueryCustomRepositoryExtension);
262+
this._dashboardRepository = this.appDataSource
263+
.getRepository(DashboardEntity)
264+
.extend(dashboardCustomRepositoryExtension);
265+
this._dashboardWidgetRepository = this.appDataSource
266+
.getRepository(DashboardWidgetEntity)
267+
.extend(dashboardWidgetCustomRepositoryExtension);
254268
}
255269

256270
public get userRepository(): Repository<UserEntity> & IUserRepository {
@@ -407,6 +421,14 @@ export class GlobalDatabaseContext implements IGlobalDatabaseContext {
407421
return this._savedDbQueryRepository;
408422
}
409423

424+
public get dashboardRepository(): Repository<DashboardEntity> & IDashboardRepository {
425+
return this._dashboardRepository;
426+
}
427+
428+
public get dashboardWidgetRepository(): Repository<DashboardWidgetEntity> & IDashboardWidgetRepository {
429+
return this._dashboardWidgetRepository;
430+
}
431+
410432
public startTransaction(): Promise<void> {
411433
this._queryRunner = this.appDataSource.createQueryRunner();
412434
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)