diff --git a/backend/src/entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.ts b/backend/src/entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.ts index a133e168f..895e4dcee 100644 --- a/backend/src/entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.ts +++ b/backend/src/entities/visualizations/dashboard/repository/dashboard-custom-repository-extension.ts @@ -1,6 +1,7 @@ import { DashboardEntity } from '../dashboard.entity.js'; +import { IDashboardRepository } from './dashboard.repository.interface.js'; -export const dashboardCustomRepositoryExtension = { +export const dashboardCustomRepositoryExtension: IDashboardRepository = { async findDashboardById(dashboardId: string): Promise { return await this.findOne({ where: { id: dashboardId } }); }, @@ -25,6 +26,14 @@ export const dashboardCustomRepositoryExtension = { }); }, + async findAllDashboardsWithWidgetsByConnectionId(connectionId: string): Promise { + const qb = this.createQueryBuilder('dashboard') + .leftJoinAndSelect('dashboard.widgets', 'widgets') + .where('dashboard.connection_id = :connectionId', { connectionId }) + .orderBy('dashboard.created_at', 'DESC'); + return await qb.getMany(); + }, + async saveDashboard(dashboard: DashboardEntity): Promise { return await this.save(dashboard); }, diff --git a/backend/src/entities/visualizations/dashboard/repository/dashboard.repository.interface.ts b/backend/src/entities/visualizations/dashboard/repository/dashboard.repository.interface.ts index 86ff6b714..e8918773f 100644 --- a/backend/src/entities/visualizations/dashboard/repository/dashboard.repository.interface.ts +++ b/backend/src/entities/visualizations/dashboard/repository/dashboard.repository.interface.ts @@ -7,4 +7,5 @@ export interface IDashboardRepository { findAllDashboardsByConnectionId(connectionId: string): Promise; saveDashboard(dashboard: DashboardEntity): Promise; removeDashboard(dashboard: DashboardEntity): Promise; + findAllDashboardsWithWidgetsByConnectionId(connectionId: string): Promise; } diff --git a/backend/src/entities/visualizations/dashboard/use-cases/find-all-dashboards.use.case.ts b/backend/src/entities/visualizations/dashboard/use-cases/find-all-dashboards.use.case.ts index 59663834a..c3fa85a50 100644 --- a/backend/src/entities/visualizations/dashboard/use-cases/find-all-dashboards.use.case.ts +++ b/backend/src/entities/visualizations/dashboard/use-cases/find-all-dashboards.use.case.ts @@ -32,7 +32,8 @@ export class FindAllDashboardsUseCase throw new NotFoundException(Messages.CONNECTION_NOT_FOUND); } - const dashboards = await this._dbContext.dashboardRepository.findAllDashboardsByConnectionId(connectionId); + const dashboards = + await this._dbContext.dashboardRepository.findAllDashboardsWithWidgetsByConnectionId(connectionId); return dashboards.map(buildFoundDashboardDto); } diff --git a/backend/test/ava-tests/saas-tests/dashboard-e2e.test.ts b/backend/test/ava-tests/saas-tests/dashboard-e2e.test.ts index e5c1b18ab..4b6b00e91 100644 --- a/backend/test/ava-tests/saas-tests/dashboard-e2e.test.ts +++ b/backend/test/ava-tests/saas-tests/dashboard-e2e.test.ts @@ -115,7 +115,6 @@ test.serial(`${currentTest} should create a new dashboard`, async (t) => { .set('Accept', 'application/json'); const createDashboardRO = JSON.parse(createDashboard.text); - console.log('🚀 ~ createDashboardRO:', createDashboardRO); t.is(createDashboard.status, 201); t.is(createDashboardRO.name, newDashboard.name); t.is(createDashboardRO.description, newDashboard.description);