Revision 53113
Added by Panagiotis Kanakakis over 5 years ago
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java | ||
---|---|---|
3 | 3 |
import com.fasterxml.jackson.databind.ObjectMapper; |
4 | 4 |
import eu.dnetlib.domain.data.Repository; |
5 | 5 |
import eu.dnetlib.domain.data.RepositoryInterface; |
6 |
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet; |
|
6 | 7 |
import eu.dnetlib.repo.manager.shared.AggregationDetails; |
7 | 8 |
import eu.dnetlib.repo.manager.shared.Timezone; |
8 | 9 |
import org.apache.commons.codec.digest.DigestUtils; |
... | ... | |
134 | 135 |
return Double.valueOf(number); |
135 | 136 |
} |
136 | 137 |
|
138 |
public static List<RepositorySnippet> jsonToRepositorySnippetList(JSONObject json) throws JSONException { |
|
139 |
|
|
140 |
List<RepositorySnippet> resultSet = new ArrayList<>(); |
|
141 |
JSONArray rs = json.getJSONArray("datasourceInfo"); |
|
142 |
for(int i=0;i<rs.length();i++) |
|
143 |
resultSet.add(jsonToRepositorySnippetObject( rs.getJSONObject(i)) ); |
|
144 |
return resultSet; |
|
145 |
} |
|
146 |
|
|
147 |
private static RepositorySnippet jsonToRepositorySnippetObject(JSONObject repositorySnippetObject) throws JSONException { |
|
148 |
|
|
149 |
|
|
150 |
RepositorySnippet repositorySnippet = new RepositorySnippet(); |
|
151 |
|
|
152 |
// JSONObject datasource = repositorySnippetObject.getJSONObject("datasource"); |
|
153 |
|
|
154 |
|
|
155 |
repositorySnippet.setId(repositorySnippetObject.get("id").toString()); |
|
156 |
repositorySnippet.setOfficialname(repositorySnippetObject.get("officialname").toString()); |
|
157 |
|
|
158 |
repositorySnippet.setEnglishname( repositorySnippetObject.get("englishname").toString()); |
|
159 |
if(repositorySnippet.getEnglishname().equals("null")) |
|
160 |
repositorySnippet.setEnglishname(""); |
|
161 |
|
|
162 |
repositorySnippet.setWebsiteurl(repositorySnippetObject.get("websiteurl").toString()); |
|
163 |
if(repositorySnippet.getWebsiteurl().equals("null")) |
|
164 |
repositorySnippet.setWebsiteurl(""); |
|
165 |
|
|
166 |
repositorySnippet.setRegisteredby(repositorySnippetObject.get("registeredby").toString()); |
|
167 |
if(repositorySnippet.getRegisteredby().equals("null")) |
|
168 |
repositorySnippet.setRegisteredby(""); |
|
169 |
return repositorySnippet; |
|
170 |
|
|
171 |
} |
|
172 |
|
|
137 | 173 |
public static List<Repository> jsonToRepositoryList(JSONObject json) throws JSONException { |
138 | 174 |
|
139 | 175 |
List<Repository> resultSet = new ArrayList<>(); |
... | ... | |
247 | 283 |
jsonObject.put("datauploadtype",repository.getDataUploadType()); |
248 | 284 |
jsonObject.put("missionstatementurl",repository.getMissionStatementUrl()); |
249 | 285 |
jsonObject.put("od_contenttypes",repository.getOdContentTypes()); |
250 |
jsonObject.put("officialname",repository.getOfficialName());
|
|
286 |
jsonObject.put("officialname",repository.getOfficialname());
|
|
251 | 287 |
jsonObject.put("pidsystems",repository.getPidSystems()); |
252 | 288 |
jsonObject.put("provenanceaction",repository.getProvenanceActionClass()); |
253 | 289 |
jsonObject.put("qualitymanagementkind",repository.getQualityManagementKind()); |
... | ... | |
374 | 410 |
return repositoryId.split("::")[0] + "::" + DigestUtils.md5Hex(repositoryId.split("::")[1]); |
375 | 411 |
return null; |
376 | 412 |
} |
413 |
|
|
377 | 414 |
} |
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import eu.dnetlib.domain.data.Repository; |
4 | 4 |
import eu.dnetlib.domain.data.RepositoryInterface; |
5 |
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet; |
|
5 | 6 |
import eu.dnetlib.repo.manager.service.exception.ResourceNotFoundException; |
6 | 7 |
import eu.dnetlib.repo.manager.shared.*; |
7 | 8 |
import io.swagger.annotations.Api; |
8 | 9 |
import org.json.JSONException; |
9 | 10 |
import org.springframework.http.MediaType; |
10 |
import org.springframework.security.access.prepost.PostAuthorize; |
|
11 |
import org.springframework.security.access.prepost.PreAuthorize; |
|
12 | 11 |
import org.springframework.web.bind.annotation.*; |
13 | 12 |
|
13 |
import java.io.IOException; |
|
14 | 14 |
import java.util.List; |
15 | 15 |
import java.util.Map; |
16 | 16 |
|
... | ... | |
27 | 27 |
@RequestMapping(value = "/getRepositoriesByCountry/{country}/{mode}", method = RequestMethod.GET, |
28 | 28 |
produces = MediaType.APPLICATION_JSON_VALUE) |
29 | 29 |
@ResponseBody |
30 |
List<Repository> getRepositoriesByCountry(String country, String mode, Boolean managed) throws JSONException;
|
|
30 |
List<RepositorySnippet> getRepositoriesByCountry(String country, String mode, Boolean managed) throws JSONException, IOException;
|
|
31 | 31 |
|
32 | 32 |
@RequestMapping(value = "/getRepositoriesOfUser/{userEmail}/{page}/{size}",method = RequestMethod.GET, |
33 | 33 |
produces = MediaType.APPLICATION_JSON_VALUE) |
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java | ||
---|---|---|
6 | 6 |
import eu.dnetlib.domain.data.Repository; |
7 | 7 |
import eu.dnetlib.domain.data.RepositoryInterface; |
8 | 8 |
import eu.dnetlib.domain.enabling.Vocabulary; |
9 |
import eu.dnetlib.repo.manager.service.domain.RepositorySnippet; |
|
9 | 10 |
import eu.dnetlib.repo.manager.service.domain.RequestFilter; |
10 | 11 |
import eu.dnetlib.repo.manager.service.exception.ResourceNotFoundException; |
11 | 12 |
import eu.dnetlib.repo.manager.service.utils.Converter; |
... | ... | |
35 | 36 |
import org.springframework.web.util.UriComponentsBuilder; |
36 | 37 |
|
37 | 38 |
import javax.annotation.PostConstruct; |
39 |
import java.io.IOException; |
|
38 | 40 |
import java.sql.Timestamp; |
39 | 41 |
import java.util.*; |
40 | 42 |
import java.util.concurrent.ConcurrentHashMap; |
... | ... | |
143 | 145 |
|
144 | 146 |
|
145 | 147 |
@Override |
146 |
public List<Repository> getRepositoriesByCountry(@PathVariable("country") String country, |
|
147 |
@PathVariable("mode") String mode, |
|
148 |
@RequestParam(value = "managed",required=false) Boolean managed) throws JSONException {
|
|
148 |
public List<RepositorySnippet> getRepositoriesByCountry(@PathVariable("country") String country,
|
|
149 |
@PathVariable("mode") String mode,
|
|
150 |
@RequestParam(value = "managed",required=false) Boolean managed) throws JSONException, IOException {
|
|
149 | 151 |
|
150 | 152 |
LOGGER.debug("Getting repositories by country!"); |
151 | 153 |
int page = 0; |
152 | 154 |
int size = 100; |
153 |
List<Repository> resultSet = new ArrayList<>(); |
|
155 |
List<RepositorySnippet> resultSet = new ArrayList<>(); |
|
156 |
ObjectMapper mapper = new ObjectMapper(); |
|
154 | 157 |
|
155 |
String countryCode = countriesMap.get(country); |
|
156 | 158 |
String filterKey = "UNKNOWN"; |
157 | 159 |
if (mode.equalsIgnoreCase("opendoar")) |
158 | 160 |
filterKey = "openaire____::opendoar"; |
... | ... | |
160 | 162 |
filterKey = "openaire____::re3data"; |
161 | 163 |
|
162 | 164 |
|
163 |
LOGGER.debug("Country code equals : " + countryCode);
|
|
165 |
LOGGER.debug("Country code equals : " + country); |
|
164 | 166 |
LOGGER.debug("Filter mode equals : " + filterKey); |
165 | 167 |
|
166 |
UriComponents uriComponents = searchDatasource(String.valueOf(page),String.valueOf(size)); |
|
168 |
UriComponents uriComponents = searchSnipperDatasource(String.valueOf(page),String.valueOf(size));
|
|
167 | 169 |
RequestFilter requestFilter = new RequestFilter(); |
168 |
requestFilter.setCountry(countryCode); |
|
170 |
requestFilter.setCountry(country); |
|
171 |
requestFilter.setCollectedfrom(filterKey); |
|
169 | 172 |
|
170 | 173 |
try{ |
171 | 174 |
String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); |
172 | 175 |
JSONArray jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo"); |
173 | 176 |
while (jsonArray.length() > 0 ) { |
174 |
resultSet.addAll(this.getRepositoriesByMode(filterKey, Converter.jsonToRepositoryList(new JSONObject(rs)))); |
|
177 |
resultSet.addAll(mapper.readValue(String.valueOf(jsonArray), |
|
178 |
mapper.getTypeFactory().constructCollectionType(List.class, RepositorySnippet.class))); |
|
175 | 179 |
page += 1; |
176 |
uriComponents = searchDatasource(String.valueOf(page),String.valueOf(size)); |
|
180 |
uriComponents = searchSnipperDatasource(String.valueOf(page),String.valueOf(size));
|
|
177 | 181 |
rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); |
178 | 182 |
jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo"); |
179 | 183 |
} |
180 |
for (Repository r : resultSet) |
|
181 |
this.updateRepositoryInfo(r); |
|
182 |
|
|
183 | 184 |
return resultSet; |
184 | 185 |
}catch (Exception e){ |
185 | 186 |
LOGGER.debug("Exception on getRepositoriesByCountry" , e); |
186 |
emailUtils.reportException(e); |
|
187 |
// emailUtils.reportException(e);
|
|
187 | 188 |
throw e; |
188 | 189 |
} |
189 | 190 |
|
... | ... | |
794 | 795 |
return UriComponentsBuilder |
795 | 796 |
.fromHttpUrl(baseAddress + "/ds/search/") |
796 | 797 |
.path("/{page}/{size}/") |
797 |
.queryParam("requestSortBy","id")
|
|
798 |
.queryParam("requestSortBy","officialname")
|
|
798 | 799 |
.queryParam("order","ASCENDING") |
799 | 800 |
.build().expand(page, size).encode(); |
800 | 801 |
} |
801 | 802 |
|
803 |
private UriComponents searchSnipperDatasource(String page,String size){ |
|
804 |
|
|
805 |
return UriComponentsBuilder |
|
806 |
.fromHttpUrl(baseAddress + "/ds/searchsnippet/") |
|
807 |
.path("/{page}/{size}/") |
|
808 |
.queryParam("requestSortBy","officialname") |
|
809 |
.queryParam("order","ASCENDING") |
|
810 |
.build().expand(page, size).encode(); |
|
811 |
} |
|
812 |
|
|
802 | 813 |
private String getRepositoryType(String typology){ |
803 | 814 |
return invertedDataSourceClass.get(typology); |
804 | 815 |
} |
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/domain/RepositorySnippet.java | ||
---|---|---|
1 |
package eu.dnetlib.repo.manager.service.domain; |
|
2 |
|
|
3 |
import com.google.gwt.user.client.rpc.IsSerializable; |
|
4 |
|
|
5 |
public class RepositorySnippet implements IsSerializable { |
|
6 |
|
|
7 |
private String id; |
|
8 |
private String officialname; |
|
9 |
private String englishname; |
|
10 |
private String websiteurl; |
|
11 |
private String registeredby; |
|
12 |
|
|
13 |
|
|
14 |
public RepositorySnippet() {} |
|
15 |
|
|
16 |
public String getId() { |
|
17 |
return id; |
|
18 |
} |
|
19 |
|
|
20 |
public void setId(String id) { |
|
21 |
this.id = id; |
|
22 |
} |
|
23 |
|
|
24 |
public String getOfficialname() { |
|
25 |
return officialname; |
|
26 |
} |
|
27 |
|
|
28 |
public void setOfficialname(String officialname) { |
|
29 |
this.officialname = officialname; |
|
30 |
} |
|
31 |
|
|
32 |
public String getEnglishname() { |
|
33 |
return englishname; |
|
34 |
} |
|
35 |
|
|
36 |
public void setEnglishname(String englishname) { |
|
37 |
this.englishname = englishname; |
|
38 |
} |
|
39 |
|
|
40 |
public String getWebsiteurl() { |
|
41 |
return websiteurl; |
|
42 |
} |
|
43 |
|
|
44 |
public void setWebsiteurl(String websiteurl) { |
|
45 |
this.websiteurl = websiteurl; |
|
46 |
} |
|
47 |
|
|
48 |
public String getRegisteredby() { |
|
49 |
return registeredby; |
|
50 |
} |
|
51 |
|
|
52 |
public void setRegisteredby(String registeredby) { |
|
53 |
this.registeredby = registeredby; |
|
54 |
} |
|
55 |
} |
modules/uoa-repository-manager-service/branches/dev-api/src/main/java/eu/dnetlib/repo/manager/service/domain/RequestFilter.java | ||
---|---|---|
10 | 10 |
private String country = null; |
11 | 11 |
private String id = null; |
12 | 12 |
private String officialname = null; |
13 |
private String collectedfrom = null; |
|
13 | 14 |
|
14 | 15 |
|
15 | 16 |
public RequestFilter() { |
... | ... | |
55 | 56 |
public void setOfficialname(String officialname) { |
56 | 57 |
this.officialname = officialname; |
57 | 58 |
} |
59 |
|
|
60 |
public String getCollectedfrom() { |
|
61 |
return collectedfrom; |
|
62 |
} |
|
63 |
|
|
64 |
public void setCollectedfrom(String collectedfrom) { |
|
65 |
this.collectedfrom = collectedfrom; |
|
66 |
} |
|
58 | 67 |
} |
Also available in: Unified diff
Add repository snippet methods