Project

General

Profile

« Previous | Next » 

Revision 62942

Added by Michele Artini 11 months ago

new fields in api response

View differences:

modules/dnet-modular-repositories-ui/trunk/pom.xml
26 26
		</dependency>
27 27
		<dependency>
28 28
			<groupId>eu.dnetlib</groupId>
29
			<artifactId>dnet-datasource-manager-common</artifactId>
29
			<artifactId>dnet-openaire-datasource-manager</artifactId>
30 30
			<version>[2.1.0-SNAPSHOT,3.0.0)</version>
31 31
		</dependency>
32 32
		<dependency>
modules/dnet-modular-repositories-ui/trunk/src/main/java/eu/dnetlib/functionality/modular/ui/repositories/RepoUIUtils.java
25 25
import eu.dnetlib.data.collector.rmi.CollectorService;
26 26
import eu.dnetlib.data.collector.rmi.ProtocolDescriptor;
27 27
import eu.dnetlib.data.collector.rmi.ProtocolParameter;
28
import eu.dnetlib.enabling.datasources.DatasourceFunctions;
28 29
import eu.dnetlib.enabling.datasources.common.Api;
29 30
import eu.dnetlib.enabling.datasources.common.ApiParam;
30 31
import eu.dnetlib.enabling.datasources.common.Datasource;
......
108 109
			ifc.setAggrDate(DateUtils.calculate_ISO8601(api.getLastAggregationDate().getTime()));
109 110
			ifc.setAggrTotal(api.getLastAggregationTotal());
110 111
			ifc.setAggrMdId(api.getLastAggregationMdid());
112
			ifc.setAggrBackend(DatasourceFunctions.calculateMdstoreBackendById(api.getLastAggregationMdid()));
111 113
		}
112 114
		if (api.getLastCollectionDate() != null) {
113 115
			ifc.setCollDate(DateUtils.calculate_ISO8601(api.getLastCollectionDate().getTime()));
114 116
			ifc.setCollTotal(api.getLastCollectionTotal());
115 117
			ifc.setCollMdId(api.getLastCollectionMdid());
118
			ifc.setCollBackend(DatasourceFunctions.calculateMdstoreBackendById(api.getLastCollectionMdid()));
116 119
		}
117 120
		if (api.getLastDownloadDate() != null) {
118 121
			ifc.setDownloadDate(DateUtils.calculate_ISO8601(api.getLastDownloadDate().getTime()));
modules/dnet-openaire-datasource-manager/trunk/src/main/java/eu/dnetlib/enabling/datasources/DatasourceFunctions.java
141 141
		return a;
142 142
	}
143 143

  
144
	private static String calculateMdstoreBackendById(final String mdId) {
144
	public static String calculateMdstoreBackendById(final String mdId) {
145 145
		if (StringUtils.isBlank(mdId)) {
146 146
			return "";
147 147
		} else if (StringUtils.trim(mdId).startsWith("md-")) {
148
			return "HDFS";
148
			return MDStoreBackend.HDFS.toString();
149 149
		} else {
150
			return "MONGO";
150
			return MDStoreBackend.MONGO.toString();
151 151
		}
152 152
	}
153 153

  
modules/dnet-openaire-datasource-manager/trunk/src/main/java/eu/dnetlib/enabling/datasources/LocalOpenaireDatasourceManagerImpl.java
98 98
		try {
99 99
			final StringWriter sql = new StringWriter();
100 100

  
101
			if (field.equalsIgnoreCase("__search__")) {
102
				sql.append(IOUtils.toString(searchApis.getInputStream()));
103
			} else {
104
				sql.append(IOUtils.toString(searchApisUsingField.getInputStream()));
105
				sql.append(field);
106
				sql.append("::text = ");
107
				sql.append(":value");
108
			}
101
			final Map<String, Object> params = new HashMap<>();
102
			if (field != null && value != null) {
103
				if (field.equalsIgnoreCase("__search__")) {
104
					params.put("value", "%" + value + "%");
105
					sql.append(IOUtils.toString(searchApis.getInputStream()));
106
				} else {
107
					sql.append(IOUtils.toString(searchApisUsingField.getInputStream()));
109 108

  
110
			return datasourceManagerClients
111
				.searchSQL(sql.toString(), ImmutableMap.of("value", field.equalsIgnoreCase("__search__") ? "%" + value + "%" : value))
112
				.stream()
113
				.map(DatasourceFunctions::mapToSearchApisEntry)
114
				.collect(Collectors.toList());
109
					if (field.equalsIgnoreCase("collbackend")) {
110
						sql.append("\"collMdId\" is not null and \"collMdId\" != '' and \"collMdId\" ");
111
						if (StringUtils.equalsIgnoreCase(value.toString(), MDStoreBackend.HDFS.toString())) {
112
							sql.append("like 'md-%'");
113
						} else {
114
							// MONGO
115
							sql.append("not like 'md-%'");
116
						}
117
					} else {
118
						params.put("value", value);
119
						sql.append(field);
120
						sql.append("::text = ");
121
						sql.append(":value");
122
					}
123
				}
115 124

  
125
				return datasourceManagerClients.searchSQL(sql.toString(), params)
126
					.stream()
127
					.map(DatasourceFunctions::mapToSearchApisEntry)
128
					.collect(Collectors.toList());
129
			}
116 130
		} catch (final Exception e) {
117 131
			log.error("Error searching field " + field + " - value: " + value, e);
118 132
		}
modules/dnet-openaire-datasource-manager/trunk/src/main/resources/eu/dnetlib/enabling/datasources/applicationContext-dnet-openaire-datasource-manager.xml
39 39
				<bean class="eu.dnetlib.enabling.datasources.DbBrowsableField"
40 40
					p:id="fulltextdownload" p:label="Fulltext download"
41 41
					p:sql="select d.fulltextdownload as term, count(*) as count from dsm_api a left outer join dsm_services d on (a.service = d.id) group by d.fulltextdownload order by count desc" />
42
				<bean class="eu.dnetlib.enabling.datasources.DbBrowsableField"
43
					p:id="collbackend" p:label="Last Collection Backend"
44
					p:sql="select t.term, count(*) from (select CASE WHEN last_collection_mdid LIKE 'md-%' THEN 'HDFS' ELSE 'MONGO' END as term from dsm_api where last_collection_mdid is not null) as t group by t.term order by count desc" />			
42 45
			</list>
43 46
		</property>
44 47
	</bean>

Also available in: Unified diff