Implement of method to find dashboard by name and tenant ID, used to find correct dashboard in case multiple dashboard start with the same name.
This commit is contained in:
		
							parent
							
								
									8b70cbdb55
								
							
						
					
					
						commit
						7975e2a96a
					
				@ -31,7 +31,6 @@ import org.thingsboard.server.common.data.Tenant;
 | 
			
		||||
import org.thingsboard.server.common.data.User;
 | 
			
		||||
import org.thingsboard.server.common.data.id.CustomerId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.DashboardId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.IdBased;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig;
 | 
			
		||||
import org.thingsboard.server.common.data.oauth2.OAuth2Registration;
 | 
			
		||||
@ -206,11 +205,7 @@ public abstract class AbstractOAuth2ClientMapper {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Optional<DashboardId> getDashboardId(TenantId tenantId, String dashboardName) {
 | 
			
		||||
        PageLink searchTextLink = new PageLink(1, 0, dashboardName);
 | 
			
		||||
        PageData<DashboardInfo> dashboardsPage = dashboardService.findDashboardsByTenantId(tenantId, searchTextLink);
 | 
			
		||||
        return dashboardsPage.getData().stream()
 | 
			
		||||
                .findAny()
 | 
			
		||||
                .map(IdBased::getId);
 | 
			
		||||
        return Optional.of(dashboardService.findFirstDashboardInfoByTenantIdAndName(tenantId, dashboardName).getId());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Optional<DashboardId> getDashboardId(TenantId tenantId, CustomerId customerId, String dashboardName) {
 | 
			
		||||
 | 
			
		||||
@ -58,4 +58,6 @@ public interface DashboardService {
 | 
			
		||||
    Dashboard unassignDashboardFromEdge(TenantId tenantId, DashboardId dashboardId, EdgeId edgeId);
 | 
			
		||||
 | 
			
		||||
    PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink);
 | 
			
		||||
 | 
			
		||||
    DashboardInfo findFirstDashboardInfoByTenantIdAndName(TenantId tenantId, String name);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -56,4 +56,6 @@ public interface DashboardInfoDao extends Dao<DashboardInfo> {
 | 
			
		||||
     */
 | 
			
		||||
    PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, PageLink pageLink);
 | 
			
		||||
 | 
			
		||||
    DashboardInfo findFirstByTenantIdAndName(UUID tenantId, String name);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,6 @@ import org.thingsboard.server.common.data.id.EdgeId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.page.PageData;
 | 
			
		||||
import org.thingsboard.server.common.data.page.PageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.page.TimePageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.relation.EntityRelation;
 | 
			
		||||
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
 | 
			
		||||
import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration;
 | 
			
		||||
@ -269,6 +268,11 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
 | 
			
		||||
        return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public DashboardInfo findFirstDashboardInfoByTenantIdAndName(TenantId tenantId, String name) {
 | 
			
		||||
        return dashboardInfoDao.findFirstByTenantIdAndName(tenantId.getId(), name);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private DataValidator<Dashboard> dashboardValidator =
 | 
			
		||||
            new DataValidator<Dashboard>() {
 | 
			
		||||
                @Override
 | 
			
		||||
 | 
			
		||||
@ -29,6 +29,9 @@ import java.util.UUID;
 | 
			
		||||
 */
 | 
			
		||||
public interface DashboardInfoRepository extends PagingAndSortingRepository<DashboardInfoEntity, UUID> {
 | 
			
		||||
 | 
			
		||||
    DashboardInfoEntity findFirstByTenantIdAndTitle(@Param("tenantId") UUID tenantId,
 | 
			
		||||
                                                    @Param("name") String title);
 | 
			
		||||
 | 
			
		||||
    @Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " +
 | 
			
		||||
            "AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
 | 
			
		||||
    Page<DashboardInfoEntity> findByTenantId(@Param("tenantId") UUID tenantId,
 | 
			
		||||
 | 
			
		||||
@ -83,4 +83,9 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao<DashboardInfoE
 | 
			
		||||
                        Objects.toString(pageLink.getTextSearch(), ""),
 | 
			
		||||
                        DaoUtil.toPageable(pageLink)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public DashboardInfo findFirstByTenantIdAndName(UUID tenantId, String name) {
 | 
			
		||||
        return DaoUtil.getData(dashboardInfoRepository.findFirstByTenantIdAndTitle(tenantId, name));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user