Commit e18c9543 authored by Noel Alonso's avatar Noel Alonso
Browse files

Separa interfaces de servicios de tipo data y geo

De este modo según su tipo implementará unas funcionalidades
u otras
parent 94e37468
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
package es.redmic.viewlib.common.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import es.redmic.models.es.common.dto.JSONCollectionDTO;
import es.redmic.models.es.common.query.dto.FilterSchemaDTO;
import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.viewlib.common.dto.MetaDTO;

public abstract interface IBaseService<TModel, TDTO, TQueryDTO> {

	public MetaDTO<?> findById(String id);

	public JSONCollectionDTO find(TQueryDTO query, Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public JSONCollectionDTO find(String[] fields, String text, Integer from, Integer size,
			Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public JSONCollectionDTO mget(MgetDTO dto);

	public List<String> suggest(TQueryDTO queryDTO, Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public List<String> suggest(String[] fields, String text, Integer size, Map<String, Object> fixedQuery,
			Set<String> fieldsExcludedOnQuery);

	public FilterSchemaDTO getFilterSchema(Set<String> ignorableFieldNames);
}
+27 −0
Original line number Diff line number Diff line
package es.redmic.viewlib.data.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import es.redmic.models.es.common.dto.JSONCollectionDTO;
import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.viewlib.common.dto.MetaDTO;
import es.redmic.viewlib.common.service.IBaseService;

public abstract interface IDataService<TModel, TDTO, TQueryDTO> extends IBaseService<TModel, TDTO, TQueryDTO> {

	public MetaDTO<?> findById(String id);

	public JSONCollectionDTO find(TQueryDTO query, Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public JSONCollectionDTO find(String[] fields, String text, Integer from, Integer size,
			Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public JSONCollectionDTO mget(MgetDTO dto);

	public List<String> suggest(TQueryDTO queryDTO, Map<String, Object> fixedQuery, Set<String> fieldsExcludedOnQuery);

	public List<String> suggest(String[] fields, String text, Integer size, Map<String, Object> fixedQuery,
			Set<String> fieldsExcludedOnQuery);
}
+1 −2
Original line number Diff line number Diff line
@@ -16,13 +16,12 @@ import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.models.es.common.query.dto.SimpleQueryDTO;
import es.redmic.models.es.data.common.model.DataSearchWrapper;
import es.redmic.viewlib.common.dto.MetaDTO;
import es.redmic.viewlib.common.service.IBaseService;
import es.redmic.viewlib.common.service.RBaseService;
import es.redmic.viewlib.config.MapperScanBeanItfc;
import es.redmic.viewlib.data.repository.IDataRepository;

public abstract class RDataService<TModel extends BaseES<?>, TDTO extends CommonDTO, TQueryDTO extends SimpleQueryDTO>
		extends RBaseService<TModel, TDTO, TQueryDTO> implements IBaseService<TModel, TDTO, TQueryDTO> {
		extends RBaseService<TModel, TDTO, TQueryDTO> implements IDataService<TModel, TDTO, TQueryDTO> {

	IDataRepository<TModel, TQueryDTO> repository;

+19 −0
Original line number Diff line number Diff line
package es.redmic.viewlib.geodata.service;

import java.util.List;

import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.models.es.geojson.common.dto.GeoJSONFeatureCollectionDTO;
import es.redmic.viewlib.common.dto.MetaDTO;
import es.redmic.viewlib.common.service.IBaseService;

public interface IGeoDataService<TModel, TDTO, TQueryDTO> extends IBaseService<TModel, TDTO, TQueryDTO> {

	public MetaDTO<?> findById(String id, String parentId);

	public GeoJSONFeatureCollectionDTO find(TQueryDTO query, String parentId);

	public List<String> suggest(TQueryDTO queryDTO, String parentId);

	public GeoJSONFeatureCollectionDTO mget(MgetDTO dto, String parentId);
}
+71 −0
Original line number Diff line number Diff line
package es.redmic.viewlib.geodata.service;

import java.util.List;

import es.redmic.brokerlib.avro.common.CommonDTO;
import es.redmic.models.es.common.dto.AggregationsDTO;
import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.models.es.common.query.dto.SimpleQueryDTO;
import es.redmic.models.es.geojson.common.dto.GeoJSONFeatureCollectionDTO;
import es.redmic.models.es.geojson.common.model.Feature;
import es.redmic.models.es.geojson.common.model.GeoSearchWrapper;
import es.redmic.viewlib.common.dto.MetaDTO;
import es.redmic.viewlib.common.service.RBaseService;
import es.redmic.viewlib.geodata.repository.IGeoDataRepository;

public abstract class RGeoDataService<TModel extends Feature<?, ?>, TDTO extends CommonDTO, TQueryDTO extends SimpleQueryDTO>
		extends RBaseService<TModel, TDTO, TQueryDTO> implements IGeoDataService<TModel, TDTO, TQueryDTO> {

	IGeoDataRepository<TModel, TQueryDTO> repository;

	public RGeoDataService(IGeoDataRepository<TModel, TQueryDTO> repository) {
		this.repository = repository;
	}

	@Override
	public MetaDTO<?> findById(String id, String parentId) {

		// TODO: comprobar mediante microservicio de credenciales que este usuario puede
		// buscar

		return mapper.getMapperFacade().map(repository.findById(id), MetaDTO.class, getMappingContext());
	}

	@Override
	public List<String> suggest(TQueryDTO queryDTO, String parentId) {

		// TODO: comprobar mediante microservicio de credenciales que este usuario puede
		// buscar

		return repository.suggest(queryDTO);
	}

	@Override
	public GeoJSONFeatureCollectionDTO mget(MgetDTO dto, String parentId) {

		// TODO: comprobar mediante microservicio de credenciales que este usuario puede
		// buscar

		return mapper.getMapperFacade().map(repository.mget(dto), GeoJSONFeatureCollectionDTO.class,
				getMappingContext());
	}

	@Override
	public GeoJSONFeatureCollectionDTO find(TQueryDTO query, String parentId) {

		// TODO: comprobar mediante microservicio de credenciales que este usuario puede
		// buscar

		GeoSearchWrapper<?, ?> result = repository.find(query);

		GeoJSONFeatureCollectionDTO collection = mapper.getMapperFacade().map(result.getHits(),
				GeoJSONFeatureCollectionDTO.class);

		if (result.getAggregations() != null) {
			collection.set_aggs(
					mapper.getMapperFacade().map(result.getAggregations(), AggregationsDTO.class, getMappingContext()));
		}

		return collection;
	}
}
Loading