Loading atlas-view/src/main/java/es/redmic/atlasview/controller/layer/LayerController.java +24 −0 Original line number Diff line number Diff line Loading @@ -32,10 +32,12 @@ import es.redmic.atlaslib.events.layer.LayerEventFactory; import es.redmic.atlaslib.events.layer.LayerEventTypes; import es.redmic.atlaslib.events.layer.create.CreateLayerEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerEvent; import es.redmic.atlaslib.events.layer.partialupdate.themeinspire.UpdateThemeInspireInLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerEvent; import es.redmic.atlasview.mapper.layer.LayerESMapper; import es.redmic.atlasview.mapper.layer.LayerWMSESMapper; import es.redmic.atlasview.mapper.themeinspire.ThemeInspireESMapper; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.service.layer.LayerESService; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -154,6 +156,28 @@ public class LayerController extends DataController<Layer, LayerDTO, GeoDataQuer } } @KafkaHandler public void listen(UpdateThemeInspireInLayerEvent event) { EventApplicationResult result = null; try { result = service.updateThemeInspireInLayer(event.getAggregateId(), Mappers.getMapper(ThemeInspireESMapper.class).map(event.getThemeInspire())); } catch (Exception e) { publishFailedEvent(LayerEventFactory.getEvent(event, LayerEventTypes.UPDATE_FAILED, ExceptionType.INTERNAL_EXCEPTION.name(), null), layer_topic); return; } if (result.isSuccess()) { publishConfirmedEvent(new UpdateThemeInspireInLayerEvent().buildFrom(event), layer_topic); } else { publishFailedEvent(LayerEventFactory.getEvent(event, LayerEventTypes.UPDATE_FAILED, result.getExeptionType(), result.getExceptionArguments()), layer_topic); } } @KafkaHandler(isDefault = true) public void listenDefualt(Object event) { } Loading atlas-view/src/main/java/es/redmic/atlasview/repository/layer/LayerESRepository.java +25 −0 Original line number Diff line number Diff line package es.redmic.atlasview.repository.layer; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; /*- * #%L * Atlas-query-endpoint Loading Loading @@ -29,6 +31,7 @@ import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; Loading @@ -39,6 +42,8 @@ import org.springframework.stereotype.Repository; import es.redmic.atlasview.common.query.LayerQueryUtils; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.model.layer.LayerWMS; import es.redmic.atlasview.model.themeinspire.ThemeInspire; import es.redmic.elasticsearchlib.common.model.JoinIndex; import es.redmic.elasticsearchlib.common.utils.ElasticPersistenceUtils; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -72,6 +77,26 @@ public class LayerESRepository extends RWDataESRepository<Layer, GeoDataQueryDTO setInternalQuery(getLayerQuery()); } @SuppressWarnings("unchecked") public EventApplicationResult updateThemeInspireInLayer(String layerId, ThemeInspire themeInspire) { Layer source = (Layer) queryById(layerId).get_source(); JoinIndex joinIndex = source.getJoinIndex(); XContentBuilder doc; try { doc = jsonBuilder().startObject().field("jobIndex", objectMapper.convertValue(joinIndex, Map.class)) .field("themeInspire", objectMapper.convertValue(themeInspire, Map.class)).endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + layerId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } return update(layerId, source.getJoinIndex().getParent(), doc); } @Override protected EventApplicationResult checkInsertConstraintsFulfilled(Layer modelToIndex) { Loading atlas-view/src/main/java/es/redmic/atlasview/service/layer/LayerESService.java +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import es.redmic.atlaslib.dto.layer.LayerDTO; import es.redmic.atlasview.mapper.layer.LayerESMapper; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.model.layer.LayerWMS; import es.redmic.atlasview.model.themeinspire.ThemeInspire; import es.redmic.atlasview.repository.category.CategoryESRepository; import es.redmic.atlasview.repository.layer.LayerESRepository; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -94,6 +95,10 @@ public class LayerESService extends RDataService<Layer, LayerDTO, GeoDataQueryDT return repository.delete(id); } public EventApplicationResult updateThemeInspireInLayer(String id, ThemeInspire themeInspire) { return repository.updateThemeInspireInLayer(id, themeInspire); } /** * Sobrescribe findById para realizar una query en lugar de un get. En caso * contrario sería necesario pasarle el id del padre Loading Loading
atlas-view/src/main/java/es/redmic/atlasview/controller/layer/LayerController.java +24 −0 Original line number Diff line number Diff line Loading @@ -32,10 +32,12 @@ import es.redmic.atlaslib.events.layer.LayerEventFactory; import es.redmic.atlaslib.events.layer.LayerEventTypes; import es.redmic.atlaslib.events.layer.create.CreateLayerEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerEvent; import es.redmic.atlaslib.events.layer.partialupdate.themeinspire.UpdateThemeInspireInLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerEvent; import es.redmic.atlasview.mapper.layer.LayerESMapper; import es.redmic.atlasview.mapper.layer.LayerWMSESMapper; import es.redmic.atlasview.mapper.themeinspire.ThemeInspireESMapper; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.service.layer.LayerESService; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -154,6 +156,28 @@ public class LayerController extends DataController<Layer, LayerDTO, GeoDataQuer } } @KafkaHandler public void listen(UpdateThemeInspireInLayerEvent event) { EventApplicationResult result = null; try { result = service.updateThemeInspireInLayer(event.getAggregateId(), Mappers.getMapper(ThemeInspireESMapper.class).map(event.getThemeInspire())); } catch (Exception e) { publishFailedEvent(LayerEventFactory.getEvent(event, LayerEventTypes.UPDATE_FAILED, ExceptionType.INTERNAL_EXCEPTION.name(), null), layer_topic); return; } if (result.isSuccess()) { publishConfirmedEvent(new UpdateThemeInspireInLayerEvent().buildFrom(event), layer_topic); } else { publishFailedEvent(LayerEventFactory.getEvent(event, LayerEventTypes.UPDATE_FAILED, result.getExeptionType(), result.getExceptionArguments()), layer_topic); } } @KafkaHandler(isDefault = true) public void listenDefualt(Object event) { } Loading
atlas-view/src/main/java/es/redmic/atlasview/repository/layer/LayerESRepository.java +25 −0 Original line number Diff line number Diff line package es.redmic.atlasview.repository.layer; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; /*- * #%L * Atlas-query-endpoint Loading Loading @@ -29,6 +31,7 @@ import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; Loading @@ -39,6 +42,8 @@ import org.springframework.stereotype.Repository; import es.redmic.atlasview.common.query.LayerQueryUtils; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.model.layer.LayerWMS; import es.redmic.atlasview.model.themeinspire.ThemeInspire; import es.redmic.elasticsearchlib.common.model.JoinIndex; import es.redmic.elasticsearchlib.common.utils.ElasticPersistenceUtils; import es.redmic.elasticsearchlib.data.repository.RWDataESRepository; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -72,6 +77,26 @@ public class LayerESRepository extends RWDataESRepository<Layer, GeoDataQueryDTO setInternalQuery(getLayerQuery()); } @SuppressWarnings("unchecked") public EventApplicationResult updateThemeInspireInLayer(String layerId, ThemeInspire themeInspire) { Layer source = (Layer) queryById(layerId).get_source(); JoinIndex joinIndex = source.getJoinIndex(); XContentBuilder doc; try { doc = jsonBuilder().startObject().field("jobIndex", objectMapper.convertValue(joinIndex, Map.class)) .field("themeInspire", objectMapper.convertValue(themeInspire, Map.class)).endObject(); } catch (IllegalArgumentException | IOException e1) { LOGGER.debug("Error modificando el item con id " + layerId + " en " + getIndex()[0] + " " + getType()); return new EventApplicationResult(ExceptionType.ES_UPDATE_DOCUMENT.toString()); } return update(layerId, source.getJoinIndex().getParent(), doc); } @Override protected EventApplicationResult checkInsertConstraintsFulfilled(Layer modelToIndex) { Loading
atlas-view/src/main/java/es/redmic/atlasview/service/layer/LayerESService.java +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import es.redmic.atlaslib.dto.layer.LayerDTO; import es.redmic.atlasview.mapper.layer.LayerESMapper; import es.redmic.atlasview.model.layer.Layer; import es.redmic.atlasview.model.layer.LayerWMS; import es.redmic.atlasview.model.themeinspire.ThemeInspire; import es.redmic.atlasview.repository.category.CategoryESRepository; import es.redmic.atlasview.repository.layer.LayerESRepository; import es.redmic.exception.common.ExceptionType; Loading Loading @@ -94,6 +95,10 @@ public class LayerESService extends RDataService<Layer, LayerDTO, GeoDataQueryDT return repository.delete(id); } public EventApplicationResult updateThemeInspireInLayer(String id, ThemeInspire themeInspire) { return repository.updateThemeInspireInLayer(id, themeInspire); } /** * Sobrescribe findById para realizar una query en lugar de un get. En caso * contrario sería necesario pasarle el id del padre Loading