Skip to content

Commit c2520a0

Browse files
committed
Refactor dashboard widget structure
1 parent e20c5c7 commit c2520a0

26 files changed

Lines changed: 91 additions & 65 deletions

backend/src/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ 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';
4646
import { DashboardModule } from './entities/visualizations/dashboard/dashboards.module.js';
47+
import { DashboardWidgetModule } from './entities/visualizations/dashboard-widget/dashboard-widget.module.js';
4748

4849
@Module({
4950
imports: [
@@ -92,6 +93,7 @@ import { DashboardModule } from './entities/visualizations/dashboard/dashboards.
9293
S3WidgetModule,
9394
SavedDbQueryModule,
9495
DashboardModule,
96+
DashboardWidgetModule,
9597
],
9698
controllers: [AppController],
9799
providers: [

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,9 @@ import { PersonalTableSettingsEntity } from '../../entities/table-settings/perso
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';
6161
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';
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';
6765

6866
export interface IGlobalDatabaseContext extends IDatabaseContext {
6967
userRepository: Repository<UserEntity> & IUserRepository;

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,11 @@ import { SavedDbQueryEntity } from '../../entities/visualizations/saved-db-query
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';
108108
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';
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';
114112
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';
113+
import { dashboardWidgetCustomRepositoryExtension } from '../../entities/visualizations/dashboard-widget/repository/dashboard-widget-custom-repository-extension.js';
116114

117115
@Injectable({ scope: Scope.REQUEST })
118116
export class GlobalDatabaseContext implements IGlobalDatabaseContext {

backend/src/entities/visualizations/dashboard/dashboard-widget.entity.ts renamed to backend/src/entities/visualizations/dashboard-widget/dashboard-widget.entity.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
Relation,
1212
} from 'typeorm';
1313
import { DashboardWidgetTypeEnum } from '../../../enums/dashboard-widget-type.enum.js';
14-
import { DashboardEntity } from './dashboard.entity.js';
14+
import { DashboardEntity } from '../dashboard/dashboard.entity.js';
1515
import { SavedDbQueryEntity } from '../saved-db-query/saved-db-query.entity.js';
1616

1717
@Entity('dashboard_widget')
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
2+
import { TypeOrmModule } from '@nestjs/typeorm';
3+
import { GlobalDatabaseContext } from '../../../common/application/global-database-context.js';
4+
import { BaseType, UseCaseType } from '../../../common/data-injection.tokens.js';
5+
import { AuthMiddleware } from '../../../authorization/auth.middleware.js';
6+
import { UserEntity } from '../../user/user.entity.js';
7+
import { LogOutEntity } from '../../log-out/log-out.entity.js';
8+
import { DashboardWidgetController } from './dashboard-widgets.controller.js';
9+
import { CreateDashboardWidgetUseCase } from './use-cases/create-dashboard-widget.use.case.js';
10+
import { UpdateDashboardWidgetUseCase } from './use-cases/update-dashboard-widget.use.case.js';
11+
import { DeleteDashboardWidgetUseCase } from './use-cases/delete-dashboard-widget.use.case.js';
12+
13+
@Module({
14+
imports: [TypeOrmModule.forFeature([UserEntity, LogOutEntity])],
15+
providers: [
16+
{
17+
provide: BaseType.GLOBAL_DB_CONTEXT,
18+
useClass: GlobalDatabaseContext,
19+
},
20+
{
21+
provide: UseCaseType.CREATE_DASHBOARD_WIDGET,
22+
useClass: CreateDashboardWidgetUseCase,
23+
},
24+
{
25+
provide: UseCaseType.UPDATE_DASHBOARD_WIDGET,
26+
useClass: UpdateDashboardWidgetUseCase,
27+
},
28+
{
29+
provide: UseCaseType.DELETE_DASHBOARD_WIDGET,
30+
useClass: DeleteDashboardWidgetUseCase,
31+
},
32+
],
33+
controllers: [DashboardWidgetController],
34+
exports: [],
35+
})
36+
export class DashboardWidgetModule {
37+
public configure(consumer: MiddlewareConsumer): void {
38+
consumer
39+
.apply(AuthMiddleware)
40+
.forRoutes(
41+
{ path: '/dashboard/:dashboardId/widget/:connectionId', method: RequestMethod.POST },
42+
{ path: '/dashboard/:dashboardId/widget/:widgetId/:connectionId', method: RequestMethod.PUT },
43+
{ path: '/dashboard/:dashboardId/widget/:widgetId/:connectionId', method: RequestMethod.DELETE },
44+
);
45+
}
46+
}

backend/src/entities/visualizations/dashboard/dashboard-widgets.controller.ts renamed to backend/src/entities/visualizations/dashboard-widget/dashboard-widgets.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
ICreateDashboardWidget,
2929
IDeleteDashboardWidget,
3030
IUpdateDashboardWidget,
31-
} from './use-cases/dashboard-use-cases.interface.js';
31+
} from './use-cases/dashboard-widget-use-cases.interface.js';
3232

3333
@UseInterceptors(SentryInterceptor)
3434
@Controller()

backend/src/entities/visualizations/dashboard/data-structures/create-dashboard-widget.ds.ts renamed to backend/src/entities/visualizations/dashboard-widget/data-structures/create-dashboard-widget.ds.ts

File renamed without changes.

backend/src/entities/visualizations/dashboard/data-structures/delete-dashboard-widget.ds.ts renamed to backend/src/entities/visualizations/dashboard-widget/data-structures/delete-dashboard-widget.ds.ts

File renamed without changes.

backend/src/entities/visualizations/dashboard/data-structures/update-dashboard-widget.ds.ts renamed to backend/src/entities/visualizations/dashboard-widget/data-structures/update-dashboard-widget.ds.ts

File renamed without changes.

backend/src/entities/visualizations/dashboard/dto/create-dashboard-widget.dto.ts renamed to backend/src/entities/visualizations/dashboard-widget/dto/create-dashboard-widget.dto.ts

File renamed without changes.

0 commit comments

Comments
 (0)