Loading time-series-view/src/main/java/es/redmic/timeseriesview/repository/ObjectCollectingSeriesESRepository.java +12 −6 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public class ObjectCollectingSeriesESRepository extends RWSeriesESRepository<Obj private static final String objectNestedPath = "object"; private static final String activityField = "activityId"; private static final String grandparentIdKey = "grandparentId"; private static int aggsSize = 200; Loading Loading @@ -154,12 +155,17 @@ public class ObjectCollectingSeriesESRepository extends RWSeriesESRepository<Obj @Override protected QueryBuilder getTermQuery(Map<String, Object> terms, BoolQueryBuilder query) { if (terms != null && !terms.isEmpty()) { // Se mantiene grandparentId por retrocompatibilidad if (terms != null && (terms.containsKey("grandparentId") || terms.containsKey(activityField))) { String activityId = (String) terms.get("grandparentId"); // TODO: comprobar también por parentId o featureId if(terms.containsKey(grandparentIdKey) || terms.containsKey(activityField)) { String activityId = null; if(terms.containsKey(grandparentIdKey)) activityId = (String) terms.get(grandparentIdKey); if (terms.containsKey(activityField)) activityId = (String) terms.get(activityField); query.must(QueryBuilders.boolQuery().filter(QueryBuilders.termQuery(activityField, activityId))); } } else { throw new ESTermQueryException(activityField, "null"); } Loading time-series-view/src/test/java/es/redmic/test/timeseriesview/integration/controller/ObjectCollectingSeriesControllerTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fasterxml.jackson.core.JsonParseException; Loading @@ -52,6 +54,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.models.es.maintenance.parameter.model.DataDefinition; import es.redmic.test.timeseriesview.integration.common.controller.SeriesControllerBaseTest; import es.redmic.timeseriesview.TimeSeriesViewApplication; import es.redmic.timeseriesview.model.objectcollectingseries.ObjectCollectingSeries; Loading Loading @@ -85,6 +88,9 @@ public class ObjectCollectingSeriesControllerTest extends SeriesControllerBaseTe @Value("${controller.mapping.OBJECT_CLASSIFICATION}") private String OBJECT_CLASSIFICATION; @Value("${controller.mapping.SERIES_TEMPORALDATA}") private String SERIES_TEMPORALDATA; DataQueryDTO dataQuery; @BeforeClass Loading Loading @@ -176,6 +182,32 @@ public class ObjectCollectingSeriesControllerTest extends SeriesControllerBaseTe .andExpect(jsonPath("$.body[0].data[0].timeInterval", notNullValue())); // @formatter:on } @Test public void getObjectTemporalData_Return200_IfQueryIsOK() throws Exception { // @formatter:off List<Integer> dataDefinitionList = new ArrayList<>(); dataDefinitionList.add(12); dataQuery.getTerms().put("dataDefinition", dataDefinitionList); List<String> returnFields = new ArrayList<>(); returnFields.add("value"); returnFields.add("date"); dataQuery.setReturnFields(returnFields); this.mockMvc .perform(post(OBJECTCOLLECTINGSERIES_BASE_PATH + SERIES_TEMPORALDATA + "/_search") .content(getQueryAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().is(200)) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body", notNullValue())); // @formatter:on } } Loading
time-series-view/src/main/java/es/redmic/timeseriesview/repository/ObjectCollectingSeriesESRepository.java +12 −6 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public class ObjectCollectingSeriesESRepository extends RWSeriesESRepository<Obj private static final String objectNestedPath = "object"; private static final String activityField = "activityId"; private static final String grandparentIdKey = "grandparentId"; private static int aggsSize = 200; Loading Loading @@ -154,12 +155,17 @@ public class ObjectCollectingSeriesESRepository extends RWSeriesESRepository<Obj @Override protected QueryBuilder getTermQuery(Map<String, Object> terms, BoolQueryBuilder query) { if (terms != null && !terms.isEmpty()) { // Se mantiene grandparentId por retrocompatibilidad if (terms != null && (terms.containsKey("grandparentId") || terms.containsKey(activityField))) { String activityId = (String) terms.get("grandparentId"); // TODO: comprobar también por parentId o featureId if(terms.containsKey(grandparentIdKey) || terms.containsKey(activityField)) { String activityId = null; if(terms.containsKey(grandparentIdKey)) activityId = (String) terms.get(grandparentIdKey); if (terms.containsKey(activityField)) activityId = (String) terms.get(activityField); query.must(QueryBuilders.boolQuery().filter(QueryBuilders.termQuery(activityField, activityId))); } } else { throw new ESTermQueryException(activityField, "null"); } Loading
time-series-view/src/test/java/es/redmic/test/timeseriesview/integration/controller/ObjectCollectingSeriesControllerTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fasterxml.jackson.core.JsonParseException; Loading @@ -52,6 +54,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import es.redmic.models.es.common.query.dto.DataQueryDTO; import es.redmic.models.es.maintenance.parameter.model.DataDefinition; import es.redmic.test.timeseriesview.integration.common.controller.SeriesControllerBaseTest; import es.redmic.timeseriesview.TimeSeriesViewApplication; import es.redmic.timeseriesview.model.objectcollectingseries.ObjectCollectingSeries; Loading Loading @@ -85,6 +88,9 @@ public class ObjectCollectingSeriesControllerTest extends SeriesControllerBaseTe @Value("${controller.mapping.OBJECT_CLASSIFICATION}") private String OBJECT_CLASSIFICATION; @Value("${controller.mapping.SERIES_TEMPORALDATA}") private String SERIES_TEMPORALDATA; DataQueryDTO dataQuery; @BeforeClass Loading Loading @@ -176,6 +182,32 @@ public class ObjectCollectingSeriesControllerTest extends SeriesControllerBaseTe .andExpect(jsonPath("$.body[0].data[0].timeInterval", notNullValue())); // @formatter:on } @Test public void getObjectTemporalData_Return200_IfQueryIsOK() throws Exception { // @formatter:off List<Integer> dataDefinitionList = new ArrayList<>(); dataDefinitionList.add(12); dataQuery.getTerms().put("dataDefinition", dataDefinitionList); List<String> returnFields = new ArrayList<>(); returnFields.add("value"); returnFields.add("date"); dataQuery.setReturnFields(returnFields); this.mockMvc .perform(post(OBJECTCOLLECTINGSERIES_BASE_PATH + SERIES_TEMPORALDATA + "/_search") .content(getQueryAsString(dataQuery)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().is(200)) .andExpect(jsonPath("$.success", is(true))) .andExpect(jsonPath("$.body", notNullValue())); // @formatter:on } }