Commit 7975e2a96a1a463be2215b07cd0aa03a0d33b1ed

Authored by AndrewVolosytnykhThingsboard
Committed by Andrew Shvayka
1 parent 8b70cbdb

Implement of method to find dashboard by name and tenant ID, used to find correc…

…t dashboard in case multiple dashboard start with the same name.
@@ -31,7 +31,6 @@ import org.thingsboard.server.common.data.Tenant; @@ -31,7 +31,6 @@ import org.thingsboard.server.common.data.Tenant;
31 import org.thingsboard.server.common.data.User; 31 import org.thingsboard.server.common.data.User;
32 import org.thingsboard.server.common.data.id.CustomerId; 32 import org.thingsboard.server.common.data.id.CustomerId;
33 import org.thingsboard.server.common.data.id.DashboardId; 33 import org.thingsboard.server.common.data.id.DashboardId;
34 -import org.thingsboard.server.common.data.id.IdBased;  
35 import org.thingsboard.server.common.data.id.TenantId; 34 import org.thingsboard.server.common.data.id.TenantId;
36 import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig; 35 import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig;
37 import org.thingsboard.server.common.data.oauth2.OAuth2Registration; 36 import org.thingsboard.server.common.data.oauth2.OAuth2Registration;
@@ -206,11 +205,7 @@ public abstract class AbstractOAuth2ClientMapper { @@ -206,11 +205,7 @@ public abstract class AbstractOAuth2ClientMapper {
206 } 205 }
207 206
208 private Optional<DashboardId> getDashboardId(TenantId tenantId, String dashboardName) { 207 private Optional<DashboardId> getDashboardId(TenantId tenantId, String dashboardName) {
209 - PageLink searchTextLink = new PageLink(1, 0, dashboardName);  
210 - PageData<DashboardInfo> dashboardsPage = dashboardService.findDashboardsByTenantId(tenantId, searchTextLink);  
211 - return dashboardsPage.getData().stream()  
212 - .findAny()  
213 - .map(IdBased::getId); 208 + return Optional.of(dashboardService.findFirstDashboardInfoByTenantIdAndName(tenantId, dashboardName).getId());
214 } 209 }
215 210
216 private Optional<DashboardId> getDashboardId(TenantId tenantId, CustomerId customerId, String dashboardName) { 211 private Optional<DashboardId> getDashboardId(TenantId tenantId, CustomerId customerId, String dashboardName) {
@@ -58,4 +58,6 @@ public interface DashboardService { @@ -58,4 +58,6 @@ public interface DashboardService {
58 Dashboard unassignDashboardFromEdge(TenantId tenantId, DashboardId dashboardId, EdgeId edgeId); 58 Dashboard unassignDashboardFromEdge(TenantId tenantId, DashboardId dashboardId, EdgeId edgeId);
59 59
60 PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink); 60 PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink);
  61 +
  62 + DashboardInfo findFirstDashboardInfoByTenantIdAndName(TenantId tenantId, String name);
61 } 63 }
@@ -56,4 +56,6 @@ public interface DashboardInfoDao extends Dao<DashboardInfo> { @@ -56,4 +56,6 @@ public interface DashboardInfoDao extends Dao<DashboardInfo> {
56 */ 56 */
57 PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, PageLink pageLink); 57 PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, PageLink pageLink);
58 58
  59 + DashboardInfo findFirstByTenantIdAndName(UUID tenantId, String name);
  60 +
59 } 61 }
@@ -34,7 +34,6 @@ import org.thingsboard.server.common.data.id.EdgeId; @@ -34,7 +34,6 @@ import org.thingsboard.server.common.data.id.EdgeId;
34 import org.thingsboard.server.common.data.id.TenantId; 34 import org.thingsboard.server.common.data.id.TenantId;
35 import org.thingsboard.server.common.data.page.PageData; 35 import org.thingsboard.server.common.data.page.PageData;
36 import org.thingsboard.server.common.data.page.PageLink; 36 import org.thingsboard.server.common.data.page.PageLink;
37 -import org.thingsboard.server.common.data.page.TimePageLink;  
38 import org.thingsboard.server.common.data.relation.EntityRelation; 37 import org.thingsboard.server.common.data.relation.EntityRelation;
39 import org.thingsboard.server.common.data.relation.RelationTypeGroup; 38 import org.thingsboard.server.common.data.relation.RelationTypeGroup;
40 import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; 39 import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration;
@@ -269,6 +268,11 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb @@ -269,6 +268,11 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
269 return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink); 268 return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
270 } 269 }
271 270
  271 + @Override
  272 + public DashboardInfo findFirstDashboardInfoByTenantIdAndName(TenantId tenantId, String name) {
  273 + return dashboardInfoDao.findFirstByTenantIdAndName(tenantId.getId(), name);
  274 + }
  275 +
272 private DataValidator<Dashboard> dashboardValidator = 276 private DataValidator<Dashboard> dashboardValidator =
273 new DataValidator<Dashboard>() { 277 new DataValidator<Dashboard>() {
274 @Override 278 @Override
@@ -29,6 +29,9 @@ import java.util.UUID; @@ -29,6 +29,9 @@ import java.util.UUID;
29 */ 29 */
30 public interface DashboardInfoRepository extends PagingAndSortingRepository<DashboardInfoEntity, UUID> { 30 public interface DashboardInfoRepository extends PagingAndSortingRepository<DashboardInfoEntity, UUID> {
31 31
  32 + DashboardInfoEntity findFirstByTenantIdAndTitle(@Param("tenantId") UUID tenantId,
  33 + @Param("name") String title);
  34 +
32 @Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " + 35 @Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " +
33 "AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%'))") 36 "AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
34 Page<DashboardInfoEntity> findByTenantId(@Param("tenantId") UUID tenantId, 37 Page<DashboardInfoEntity> findByTenantId(@Param("tenantId") UUID tenantId,
@@ -83,4 +83,9 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoE @@ -83,4 +83,9 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoE
83 Objects.toString(pageLink.getTextSearch(), ""), 83 Objects.toString(pageLink.getTextSearch(), ""),
84 DaoUtil.toPageable(pageLink))); 84 DaoUtil.toPageable(pageLink)));
85 } 85 }
  86 +
  87 + @Override
  88 + public DashboardInfo findFirstByTenantIdAndName(UUID tenantId, String name) {
  89 + return DaoUtil.getData(dashboardInfoRepository.findFirstByTenantIdAndTitle(tenantId, name));
  90 + }
86 } 91 }