From 5f99c0bae2672351dbc357819a1f91ff884a8392 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 11 Apr 2025 15:32:55 +0300 Subject: [PATCH 1/2] added validation for entity name filter --- .../server/common/data/edqs/fields/EntityFields.java | 2 +- .../server/dao/entity/BaseEntityService.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java b/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java index 1b0975542c..b1a22e6c8a 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java +++ b/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(); diff --git a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java index 4df33779ee..604cceff09 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java +++ b/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'"); From 53ffd00184cd49c2b45132d41f54074ec42c8cce Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 11 Apr 2025 16:04:57 +0300 Subject: [PATCH 2/2] reverted "created_time" field support --- .../server/common/data/edqs/fields/EntityFields.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java b/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java index b1a22e6c8a..1b0975542c 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/edqs/fields/EntityFields.java +++ b/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", "created_time" -> Long.toString(getCreatedTime()); + case "createdTime" -> Long.toString(getCreatedTime()); case "title" -> getName(); case "type" -> getType(); case "label" -> getLabel();