Commit 7975e2a96a1a463be2215b07cd0aa03a0d33b1ed
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.
Showing
6 changed files
with
18 additions
and
7 deletions
@@ -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 | } |