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 | 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 | } | ... | ... |