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 31 import org.thingsboard.server.common.data.User;
32 32 import org.thingsboard.server.common.data.id.CustomerId;
33 33 import org.thingsboard.server.common.data.id.DashboardId;
34   -import org.thingsboard.server.common.data.id.IdBased;
35 34 import org.thingsboard.server.common.data.id.TenantId;
36 35 import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig;
37 36 import org.thingsboard.server.common.data.oauth2.OAuth2Registration;
... ... @@ -206,11 +205,7 @@ public abstract class AbstractOAuth2ClientMapper {
206 205 }
207 206
208 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 211 private Optional<DashboardId> getDashboardId(TenantId tenantId, CustomerId customerId, String dashboardName) {
... ...
... ... @@ -58,4 +58,6 @@ public interface DashboardService {
58 58 Dashboard unassignDashboardFromEdge(TenantId tenantId, DashboardId dashboardId, EdgeId edgeId);
59 59
60 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 56 */
57 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 34 import org.thingsboard.server.common.data.id.TenantId;
35 35 import org.thingsboard.server.common.data.page.PageData;
36 36 import org.thingsboard.server.common.data.page.PageLink;
37   -import org.thingsboard.server.common.data.page.TimePageLink;
38 37 import org.thingsboard.server.common.data.relation.EntityRelation;
39 38 import org.thingsboard.server.common.data.relation.RelationTypeGroup;
40 39 import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration;
... ... @@ -269,6 +268,11 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
269 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 276 private DataValidator<Dashboard> dashboardValidator =
273 277 new DataValidator<Dashboard>() {
274 278 @Override
... ...
... ... @@ -29,6 +29,9 @@ import java.util.UUID;
29 29 */
30 30 public interface DashboardInfoRepository extends PagingAndSortingRepository<DashboardInfoEntity, UUID> {
31 31
  32 + DashboardInfoEntity findFirstByTenantIdAndTitle(@Param("tenantId") UUID tenantId,
  33 + @Param("name") String title);
  34 +
32 35 @Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " +
33 36 "AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
34 37 Page<DashboardInfoEntity> findByTenantId(@Param("tenantId") UUID tenantId,
... ...
... ... @@ -83,4 +83,9 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoE
83 83 Objects.toString(pageLink.getTextSearch(), ""),
84 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 }
... ...