Revision 57874
Added by Ioannis Diplas over 4 years ago
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
List<Repository> getRepositoriesOfUser(String userEmail, |
22 | 22 |
String page, |
23 |
String size) throws JSONException; |
|
23 |
String size) throws JSONException, IOException;
|
|
24 | 24 |
|
25 |
List<RepositorySnippet> getRepositoriesSnippetOfUser(String userEmail, String page, String size) throws IOException, JSONException; |
|
26 |
|
|
25 | 27 |
Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException; |
26 | 28 |
|
27 | 29 |
List<AggregationDetails> getRepositoryAggregations(String id, int from, int size) throws JSONException; |
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java | ||
---|---|---|
240 | 240 |
requestFilter.setRegisteredby(userEmail); |
241 | 241 |
|
242 | 242 |
try{ |
243 |
long start = System.currentTimeMillis(); |
|
244 | 243 |
String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); |
245 |
long end = System.currentTimeMillis(); |
|
246 | 244 |
|
247 |
System.out.println("POST request finished in " + (end-start)+"ms"); |
|
248 |
start=System.currentTimeMillis(); |
|
249 | 245 |
List<Repository> repos = Converter.jsonToRepositoryList(new JSONObject(rs)); |
250 |
end=System.currentTimeMillis(); |
|
251 |
System.out.println("Converting json to repo list finished in " + (end-start)+"ms"); |
|
252 |
start=System.currentTimeMillis(); |
|
253 | 246 |
for (Repository r : repos) |
254 | 247 |
r.setPiwikInfo(piWikService.getPiwikSiteForRepo(r.getId())); |
255 |
|
|
256 |
end=System.currentTimeMillis(); |
|
257 |
System.out.println("Updating "+repos.size()+" repository infos in " + (end-start)+"ms"); |
|
258 | 248 |
return repos; |
259 | 249 |
}catch (Exception e){ |
260 | 250 |
LOGGER.debug("Exception on getRepositoriesOfUser" , e); |
... | ... | |
264 | 254 |
} |
265 | 255 |
|
266 | 256 |
@Override |
257 |
public List<RepositorySnippet> getRepositoriesSnippetOfUser(String userEmail, String page, String size) throws IOException, JSONException { |
|
258 |
List<RepositorySnippet> resultSet = new ArrayList<>(); |
|
259 |
ObjectMapper mapper = new ObjectMapper(); |
|
260 |
|
|
261 |
UriComponents uriComponents = searchSnipperDatasource(page,size); |
|
262 |
RequestFilter requestFilter = new RequestFilter(); |
|
263 |
requestFilter.setRegisteredby(userEmail); |
|
264 |
|
|
265 |
try{ |
|
266 |
String rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); |
|
267 |
JSONArray jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo"); |
|
268 |
while (jsonArray.length() > 0 ) { |
|
269 |
resultSet.addAll(mapper.readValue(String.valueOf(jsonArray), |
|
270 |
mapper.getTypeFactory().constructCollectionType(List.class, RepositorySnippet.class))); |
|
271 |
page += 1; |
|
272 |
uriComponents = searchSnipperDatasource(page,size); |
|
273 |
rs = restTemplate.postForObject(uriComponents.toUri(),requestFilter, String.class); |
|
274 |
jsonArray = (JSONArray) new JSONObject(rs).get("datasourceInfo"); |
|
275 |
} |
|
276 |
resultSet.parallelStream().forEach(repositorySnippet -> { |
|
277 |
repositorySnippet.setPiwikInfo(piWikService.getPiwikSiteForRepo(repositorySnippet.getId())); |
|
278 |
}); |
|
279 |
return resultSet; |
|
280 |
}catch (Exception e){ |
|
281 |
LOGGER.debug("Exception on getRepositoriesByCountry" , e); |
|
282 |
throw e; |
|
283 |
} |
|
284 |
} |
|
285 |
|
|
286 |
@Override |
|
267 | 287 |
public Repository getRepositoryById(String id) throws JSONException,ResourceNotFoundException { |
268 | 288 |
|
269 | 289 |
LOGGER.debug("Retreiving repositories with id : " + id ); |
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/controllers/RepositoryController.java | ||
---|---|---|
46 | 46 |
produces = MediaType.APPLICATION_JSON_VALUE) |
47 | 47 |
@ResponseBody |
48 | 48 |
@PreAuthorize("hasRole('ROLE_USER')") |
49 |
public List<Repository> getRepositoriesOfUser(@PathVariable("userEmail") String userEmail, |
|
49 |
public List<RepositorySnippet> getRepositoriesOfUser(@PathVariable("userEmail") String userEmail,
|
|
50 | 50 |
@PathVariable("page") String page, |
51 |
@PathVariable("size") String size) throws JSONException { |
|
52 |
return repositoryService.getRepositoriesOfUser(userEmail, page, size); |
|
51 |
@PathVariable("size") String size) throws JSONException, IOException {
|
|
52 |
return repositoryService.getRepositoriesSnippetOfUser(userEmail, page, size);
|
|
53 | 53 |
} |
54 | 54 |
|
55 | 55 |
@RequestMapping(value = "/searchRegisteredRepositories/{page}/{size}",method = RequestMethod.GET, |
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/domain/RepositorySnippet.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.repo.manager.domain; |
2 | 2 |
|
3 | 3 |
|
4 |
import eu.dnetlib.domain.data.PiwikInfo; |
|
4 | 5 |
|
5 | 6 |
public class RepositorySnippet { |
6 | 7 |
|
... | ... | |
13 | 14 |
private Organization[] organizations; |
14 | 15 |
private String registrationdate; |
15 | 16 |
|
17 |
|
|
18 |
private PiwikInfo piwikInfo; |
|
19 |
|
|
16 | 20 |
public RepositorySnippet() {} |
17 | 21 |
|
18 | 22 |
public String getId() { |
... | ... | |
78 | 82 |
public void setRegistrationdate(String registrationdate) { |
79 | 83 |
this.registrationdate = registrationdate; |
80 | 84 |
} |
85 |
|
|
86 |
public PiwikInfo getPiwikInfo() { |
|
87 |
return piwikInfo; |
|
88 |
} |
|
89 |
|
|
90 |
public void setPiwikInfo(PiwikInfo piwikInfo) { |
|
91 |
this.piwikInfo = piwikInfo; |
|
92 |
} |
|
81 | 93 |
} |
Also available in: Unified diff
Using new function for getRepositoriesOfUser, now retuning repository snippet