From 3ca22aeba1e3ae2585f9ee097e02c4ea386c99df Mon Sep 17 00:00:00 2001 From: Bohdan Smetaniuk Date: Tue, 30 Jun 2020 13:18:15 +0300 Subject: [PATCH] bug with empty dashboards list fixed, refractored --- .../dao/dashboard/DashboardServiceImpl.java | 2 +- .../dao/sql/dashboard/JpaDashboardInfoDao.java | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java index faca4ff172..5bb2a6f5fa 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java @@ -260,7 +260,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb public ListenableFuture> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink) { log.trace("Executing findDashboardsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); - Validator.validateId(edgeId, "Incorrect customerId " + edgeId); + Validator.validateId(edgeId, INCORRECT_EDGE_ID + edgeId); Validator.validatePageLink(pageLink); return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java index 2e07e97107..15a4738efb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java @@ -91,19 +91,17 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, TimePageLink pageLink) { log.debug("Try to find dashboards by tenantId [{}], edgeId [{}] and pageLink [{}]", tenantId, edgeId, pageLink); - ListenableFuture> relations = relationDao.findRelations(new TenantId(tenantId), new EdgeId(edgeId), EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE, EntityType.DASHBOARD, pageLink); - return Futures.transformAsync(relations, relationsData -> { - if (relationsData != null && relationsData.getData() != null && relationsData.getData().isEmpty()) { - List> dashboardFutures = new ArrayList<>(relationsData.getData().size()); - for (EntityRelation relation : relationsData.getData()) { - dashboardFutures.add(findByIdAsync(new TenantId(tenantId), relation.getTo().getId())); - } - return Futures.transform(Futures.successfulAsList(dashboardFutures), - dashboards -> new PageData<>(dashboards, relationsData.getTotalPages(), relationsData.getTotalElements(), - relationsData.hasNext()), MoreExecutors.directExecutor()); + if (relationsData != null && relationsData.getData() != null && !relationsData.getData().isEmpty()) { + List> dashboardFutures = new ArrayList<>(relationsData.getData().size()); + for (EntityRelation relation : relationsData.getData()) { + dashboardFutures.add(findByIdAsync(new TenantId(tenantId), relation.getTo().getId())); + } + return Futures.transform(Futures.successfulAsList(dashboardFutures), + dashboards -> new PageData<>(dashboards, relationsData.getTotalPages(), relationsData.getTotalElements(), + relationsData.hasNext()), MoreExecutors.directExecutor()); } else { return Futures.immediateFuture(new PageData<>()); }