bug with empty dashboards list fixed, refractored

This commit is contained in:
Bohdan Smetaniuk 2020-06-30 13:18:15 +03:00
parent 95babbe246
commit 3ca22aeba1
2 changed files with 9 additions and 11 deletions

View File

@ -260,7 +260,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
public ListenableFuture<PageData<DashboardInfo>> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink) { public ListenableFuture<PageData<DashboardInfo>> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink) {
log.trace("Executing findDashboardsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink); log.trace("Executing findDashboardsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(edgeId, "Incorrect customerId " + edgeId); Validator.validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
Validator.validatePageLink(pageLink); Validator.validatePageLink(pageLink);
return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink); return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
} }

View File

@ -91,12 +91,10 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoE
@Override @Override
public ListenableFuture<PageData<DashboardInfo>> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, TimePageLink pageLink) { public ListenableFuture<PageData<DashboardInfo>> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, TimePageLink pageLink) {
log.debug("Try to find dashboards by tenantId [{}], edgeId [{}] and pageLink [{}]", tenantId, edgeId, pageLink); log.debug("Try to find dashboards by tenantId [{}], edgeId [{}] and pageLink [{}]", tenantId, edgeId, pageLink);
ListenableFuture<PageData<EntityRelation>> relations = ListenableFuture<PageData<EntityRelation>> relations =
relationDao.findRelations(new TenantId(tenantId), new EdgeId(edgeId), EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE, EntityType.DASHBOARD, pageLink); relationDao.findRelations(new TenantId(tenantId), new EdgeId(edgeId), EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE, EntityType.DASHBOARD, pageLink);
return Futures.transformAsync(relations, relationsData -> { return Futures.transformAsync(relations, relationsData -> {
if (relationsData != null && relationsData.getData() != null && relationsData.getData().isEmpty()) { if (relationsData != null && relationsData.getData() != null && !relationsData.getData().isEmpty()) {
List<ListenableFuture<DashboardInfo>> dashboardFutures = new ArrayList<>(relationsData.getData().size()); List<ListenableFuture<DashboardInfo>> dashboardFutures = new ArrayList<>(relationsData.getData().size());
for (EntityRelation relation : relationsData.getData()) { for (EntityRelation relation : relationsData.getData()) {
dashboardFutures.add(findByIdAsync(new TenantId(tenantId), relation.getTo().getId())); dashboardFutures.add(findByIdAsync(new TenantId(tenantId), relation.getTo().getId()));