Browse Source

added search for oauth2 clients, domains, mobile apps

pull/11231/head
dashevchenko 2 years ago
parent
commit
8093049555
  1. 4
      dao/src/main/java/org/thingsboard/server/dao/domain/DomainServiceImpl.java
  2. 5
      dao/src/main/java/org/thingsboard/server/dao/mobile/MobileAppServiceImpl.java
  3. 6
      dao/src/main/java/org/thingsboard/server/dao/sql/domain/DomainRepository.java
  4. 2
      dao/src/main/java/org/thingsboard/server/dao/sql/domain/JpaDomainDao.java
  5. 2
      dao/src/main/java/org/thingsboard/server/dao/sql/mobile/JpaMobileAppDao.java
  6. 6
      dao/src/main/java/org/thingsboard/server/dao/sql/mobile/MobileAppRepository.java
  7. 2
      dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientDao.java
  8. 10
      dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRepository.java

4
dao/src/main/java/org/thingsboard/server/dao/domain/DomainServiceImpl.java

@ -123,11 +123,11 @@ public class DomainServiceImpl extends AbstractEntityService implements DomainSe
log.trace("Executing findDomainInfosByTenantId [{}]", tenantId);
PageData<Domain> pageData = domainDao.findByTenantId(tenantId, pageLink);
List<DomainInfo> domainInfos = new ArrayList<>();
pageData.getData().stream().sorted(Comparator.comparing(BaseData::getUuidId)).forEach(domain -> {
for (Domain domain : pageData.getData()) {
domainInfos.add(new DomainInfo(domain, oauth2ClientDao.findByDomainId(domain.getUuidId()).stream()
.map(OAuth2ClientInfo::new)
.collect(Collectors.toList())));
});
}
return new PageData<>(domainInfos, pageData.getTotalPages(), pageData.getTotalElements(), pageData.hasNext());
}

5
dao/src/main/java/org/thingsboard/server/dao/mobile/MobileAppServiceImpl.java

@ -20,7 +20,6 @@ import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.BaseData;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
@ -95,11 +94,11 @@ public class MobileAppServiceImpl extends AbstractEntityService implements Mobil
log.trace("Executing findMobileAppInfosByTenantId [{}]", tenantId);
PageData<MobileApp> pageData = mobileAppDao.findByTenantId(tenantId, pageLink);
List<MobileAppInfo> mobileAppInfos = new ArrayList<>();
pageData.getData().stream().sorted(Comparator.comparing(BaseData::getUuidId)).forEach(mobileApp -> {
for (MobileApp mobileApp : pageData.getData()) {
mobileAppInfos.add(new MobileAppInfo(mobileApp, oauth2ClientDao.findByMobileAppId(mobileApp.getUuidId()).stream()
.map(OAuth2ClientInfo::new)
.collect(Collectors.toList())));
});
}
return new PageData<>(mobileAppInfos, pageData.getTotalPages(), pageData.getTotalElements(), pageData.hasNext());
}

6
dao/src/main/java/org/thingsboard/server/dao/sql/domain/DomainRepository.java

@ -28,7 +28,11 @@ import java.util.UUID;
public interface DomainRepository extends JpaRepository<DomainEntity, UUID> {
Page<DomainEntity> findByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable);
@Query("SELECT d FROM DomainEntity d WHERE d.tenantId = :tenantId AND " +
"(:searchText is NULL OR ilike(d.name, concat('%', :searchText, '%')) = true)")
Page<DomainEntity> findByTenantId(@Param("tenantId") UUID tenantId,
@Param("searchText") String searchText,
Pageable pageable);
@Transactional
@Modifying

2
dao/src/main/java/org/thingsboard/server/dao/sql/domain/JpaDomainDao.java

@ -57,7 +57,7 @@ public class JpaDomainDao extends JpaAbstractDao<DomainEntity, Domain> implement
@Override
public PageData<Domain> findByTenantId(TenantId tenantId, PageLink pageLink) {
return DaoUtil.toPageData(domainRepository.findByTenantId(tenantId.getId(), DaoUtil.toPageable(pageLink)));
return DaoUtil.toPageData(domainRepository.findByTenantId(tenantId.getId(), pageLink.getTextSearch(), DaoUtil.toPageable(pageLink)));
}
@Override

2
dao/src/main/java/org/thingsboard/server/dao/sql/mobile/JpaMobileAppDao.java

@ -57,7 +57,7 @@ public class JpaMobileAppDao extends JpaAbstractDao<MobileAppEntity, MobileApp>
@Override
public PageData<MobileApp> findByTenantId(TenantId tenantId, PageLink pageLink) {
return DaoUtil.toPageData(mobileAppRepository.findByTenantId(tenantId.getId(), DaoUtil.toPageable(pageLink)));
return DaoUtil.toPageData(mobileAppRepository.findByTenantId(tenantId.getId(), pageLink.getTextSearch(), DaoUtil.toPageable(pageLink)));
}
@Override

6
dao/src/main/java/org/thingsboard/server/dao/sql/mobile/MobileAppRepository.java

@ -28,7 +28,11 @@ import java.util.UUID;
public interface MobileAppRepository extends JpaRepository<MobileAppEntity, UUID> {
Page<MobileAppEntity> findByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable);
@Query("SELECT a FROM MobileAppEntity a WHERE a.tenantId = :tenantId AND " +
"(:searchText is NULL OR ilike(a.pkgName, concat('%', :searchText, '%')) = true)")
Page<MobileAppEntity> findByTenantId(@Param("tenantId") UUID tenantId,
@Param("searchText") String searchText,
Pageable pageable);
@Transactional
@Modifying

2
dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientDao.java

@ -52,7 +52,7 @@ public class JpaOAuth2ClientDao extends JpaAbstractDao<OAuth2ClientEntity, OAuth
@Override
public PageData<OAuth2Client> findByTenantId(UUID tenantId, PageLink pageLink) {
return DaoUtil.toPageData(repository.findByTenantId(tenantId, DaoUtil.toPageable(pageLink)));
return DaoUtil.toPageData(repository.findByTenantId(tenantId, pageLink.getTextSearch(), DaoUtil.toPageable(pageLink)));
}
@Override

10
dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRepository.java

@ -29,13 +29,17 @@ import java.util.UUID;
public interface OAuth2ClientRepository extends JpaRepository<OAuth2ClientEntity, UUID> {
Page<OAuth2ClientEntity> findByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable);
@Query("SELECT с FROM OAuth2ClientEntity с WHERE с.tenantId = :tenantId AND " +
"(:searchText is NULL OR ilike(с.title, concat('%', :searchText, '%')) = true)")
Page<OAuth2ClientEntity> findByTenantId(@Param("tenantId") UUID tenantId,
@Param("searchText") String searchText,
Pageable pageable);
@Query("SELECT c " +
"FROM OAuth2ClientEntity c " +
"LEFT JOIN DomainOauth2ClientEntity dc on c.id = dc.oauth2ClientId " +
"LEFT JOIN DomainEntity domain on dc.domainId = domain.id " +
"AND domain.name = :domainName " +
"WHERE domain.name = :domainName " +
"AND (:platformFilter IS NULL OR c.platforms IS NULL OR c.platforms = '' OR c.platforms LIKE :platformFilter)")
List<OAuth2ClientEntity> findEnabledByDomainNameAndPlatformType(@Param("domainName") String domainName,
@Param("platformFilter") String platformFilter);
@ -44,7 +48,7 @@ public interface OAuth2ClientRepository extends JpaRepository<OAuth2ClientEntity
"FROM OAuth2ClientEntity c " +
"LEFT JOIN MobileAppOauth2ClientEntity mc on c.id = mc.oauth2ClientId " +
"LEFT JOIN MobileAppEntity app on mc.mobileAppId = app.id " +
"AND app.pkgName = :pkgName " +
"WHERE app.pkgName = :pkgName " +
"AND (:platformFilter IS NULL OR c.platforms IS NULL OR c.platforms = '' OR c.platforms LIKE :platformFilter)")
List<OAuth2ClientEntity> findEnabledByPkgNameAndPlatformType(@Param("pkgName") String pkgName,
@Param("platformFilter") String platformFilter);

Loading…
Cancel
Save