Browse Source

added validation for entity name filter

pull/13186/head
dashevchenko 1 year ago
parent
commit
5f99c0bae2
  1. 2
      common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java
  2. 10
      dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java

2
common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java

@ -147,7 +147,7 @@ public interface EntityFields {
default String getAsString(String key) {
return switch (key) {
case "createdTime" -> Long.toString(getCreatedTime());
case "createdTime", "created_time" -> Long.toString(getCreatedTime());
case "title" -> getName();
case "type" -> getType();
case "label" -> getLabel();

10
dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java

@ -43,6 +43,7 @@ import org.thingsboard.server.common.data.query.EntityDataQuery;
import org.thingsboard.server.common.data.query.EntityFilterType;
import org.thingsboard.server.common.data.query.EntityKey;
import org.thingsboard.server.common.data.query.EntityListFilter;
import org.thingsboard.server.common.data.query.EntityNameFilter;
import org.thingsboard.server.common.data.query.EntityTypeFilter;
import org.thingsboard.server.common.data.query.KeyFilter;
import org.thingsboard.server.common.data.query.RelationsQueryFilter;
@ -61,6 +62,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static org.thingsboard.server.common.data.id.EntityId.NULL_UUID;
import static org.thingsboard.server.common.data.query.EntityFilterType.ENTITY_NAME;
import static org.thingsboard.server.common.data.query.EntityFilterType.ENTITY_TYPE;
import static org.thingsboard.server.dao.service.Validator.validateEntityDataPageLink;
import static org.thingsboard.server.dao.service.Validator.validateId;
@ -250,6 +252,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
validateRelationQuery((RelationsQueryFilter) query.getEntityFilter());
} else if (query.getEntityFilter().getType().equals(ENTITY_TYPE)) {
validateEntityTypeQuery((EntityTypeFilter) query.getEntityFilter());
} else if (query.getEntityFilter().getType().equals(ENTITY_NAME)) {
validateEntityNameQuery((EntityNameFilter) query.getEntityFilter());
}
}
@ -264,6 +268,12 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
}
}
private static void validateEntityNameQuery(EntityNameFilter filter) {
if (filter.getEntityType() == null) {
throw new IncorrectParameterException("Entity type is required");
}
}
private static void validateRelationQuery(RelationsQueryFilter queryFilter) {
if (queryFilter.isMultiRoot() && queryFilter.getMultiRootEntitiesType() == null) {
throw new IncorrectParameterException("Multi-root relation query filter should contain 'multiRootEntitiesType'");

Loading…
Cancel
Save