1 |
1 |
package eu.dnetlib.repo.manager.service.controllers;
|
2 |
2 |
|
|
3 |
import com.fasterxml.jackson.databind.DeserializationFeature;
|
3 |
4 |
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
5 |
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
|
4 |
6 |
import eu.dnetlib.domain.enabling.Vocabulary;
|
5 |
7 |
import eu.dnetlib.repo.manager.service.utils.Converter;
|
6 |
8 |
import eu.dnetlib.domain.data.Repository;
|
... | ... | |
48 |
50 |
private Map<String, String> inverseCountriesMap = new HashMap<>();
|
49 |
51 |
|
50 |
52 |
|
51 |
|
//String updateQuery = "UPDATE datasources SET englishname = '" + repo.getEnglishName() + "', logourl = '" + repo.getLogoUrl() + "', timezone = '" + repo.getTimezone() + "', registeredby = '" + repo.getRegisteredBy() + "', activationid = '" + repo.getActivationId() + "', contactemail = '" + repo.getContactEmail() + "', datasourceclass = '" + repo.getDatasourceClass() + "' WHERE id = '" + repo.getId() + "'";
|
52 |
|
|
53 |
|
|
54 |
53 |
@PostConstruct
|
55 |
54 |
private void init() {
|
56 |
55 |
LOGGER.debug("Initialization method of repository api!");
|
... | ... | |
186 |
185 |
@PathVariable("page") String page,
|
187 |
186 |
@PathVariable("size") String size) throws JSONException {
|
188 |
187 |
|
189 |
|
LOGGER.debug("Retreiving repositories of user : " + userEmail + " with params: " + baseAddress + "-" + page + "/" + size);
|
190 |
|
//TODO update with correct method
|
|
188 |
LOGGER.debug("Retreiving repositories of user : " + userEmail );
|
191 |
189 |
UriComponents uriComponents = UriComponentsBuilder
|
192 |
|
.fromHttpUrl(baseAddress + "/ds/search/email/")
|
|
190 |
.fromHttpUrl(baseAddress + "/ds/search/registeredBy/")
|
193 |
191 |
.path("/{page}/{size}/")
|
194 |
|
.queryParam("contactemail", userEmail)
|
|
192 |
.queryParam("registeredBy", userEmail)
|
195 |
193 |
.build().expand(page, size).encode();
|
196 |
194 |
|
197 |
195 |
String rs = restTemplate.getForObject(uriComponents.toUri(), String.class);
|
... | ... | |
278 |
276 |
String json_repository = json_params.getString("repository");
|
279 |
277 |
Repository repository = null;
|
280 |
278 |
ObjectMapper mapper = new ObjectMapper();
|
|
279 |
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
281 |
280 |
try {
|
|
281 |
LOGGER.debug("repository -> " + json_repository);
|
282 |
282 |
repository = mapper.readValue(json_repository, Repository.class);
|
283 |
283 |
} catch (Exception e) {
|
284 |
284 |
LOGGER.debug("Error parsing repository ", e);
|
|
285 |
throw e;
|
285 |
286 |
}
|
286 |
287 |
|
287 |
288 |
repository = this.setRepositoryFeatures(datatype,repository);
|
... | ... | |
296 |
297 |
LOGGER.debug(retMessage);
|
297 |
298 |
} else {
|
298 |
299 |
LOGGER.debug(datatype + " " + repository.getOfficialName() + " is not in datasources. Inserting..");
|
299 |
|
storeRepository(repository);
|
|
300 |
this.storeRepository(repository);
|
300 |
301 |
}
|
301 |
302 |
}
|
302 |
303 |
} else {
|
303 |
|
// TODO call update method for register
|
|
304 |
this.updateRegisteredByValue(repository.getId(),repository.getRegisteredBy());
|
304 |
305 |
}
|
305 |
306 |
|
306 |
307 |
LOGGER.debug("Inserting Interfaces");
|
... | ... | |
315 |
316 |
LOGGER.debug("updated successfully");
|
316 |
317 |
} else {
|
317 |
318 |
LOGGER.debug("adding new iface..");
|
318 |
|
registerRepositoryInterface(repository.getId(),iFace,datatype);
|
|
319 |
this.registerRepositoryInterface(repository.getId(),iFace,datatype);
|
319 |
320 |
}
|
320 |
321 |
}
|
321 |
322 |
}
|
322 |
323 |
}
|
323 |
324 |
|
|
325 |
private void updateRegisteredByValue(String id, String registeredBy) {
|
|
326 |
|
|
327 |
LOGGER.debug("Updating registered by value with : " + registeredBy );
|
|
328 |
UriComponents uriComponents = UriComponentsBuilder
|
|
329 |
.fromHttpUrl(baseAddress + "/ds/registeredBy/")
|
|
330 |
.queryParam("dsId",id)
|
|
331 |
.queryParam("registeredBy", registeredBy)
|
|
332 |
.build()
|
|
333 |
.encode();
|
|
334 |
restTemplate.postForObject(uriComponents.toUri(), null,String.class);
|
|
335 |
}
|
|
336 |
|
324 |
337 |
private Repository setRepositoryFeatures(String datatype, Repository repository) {
|
325 |
338 |
|
326 |
339 |
//TODO update map
|
... | ... | |
460 |
473 |
return registerRepositoryInterface(repoId,iFace,datatype);
|
461 |
474 |
}
|
462 |
475 |
|
463 |
|
public RepositoryInterface registerRepositoryInterface(String repoId, RepositoryInterface iFace, String datatype) {
|
|
476 |
private RepositoryInterface registerRepositoryInterface(String repoId, RepositoryInterface iFace, String datatype) {
|
464 |
477 |
Repository e = null;
|
465 |
478 |
try {
|
466 |
479 |
e = this.getRepositoryById(repoId);
|
... | ... | |
514 |
527 |
@RequestParam(value = "englishname") String englishName) {
|
515 |
528 |
|
516 |
529 |
UriComponents uriComponents = UriComponentsBuilder
|
517 |
|
.fromHttpUrl(baseAddress + "/ds/manage/")
|
|
530 |
.fromHttpUrl(baseAddress + "/ds/englishname/")
|
518 |
531 |
.queryParam("dsId",id)
|
519 |
532 |
.queryParam("englishname",englishName)
|
520 |
533 |
.build().encode();
|
... | ... | |
528 |
541 |
@RequestParam(value = "managed") String latitude) {
|
529 |
542 |
|
530 |
543 |
UriComponents uriComponents = UriComponentsBuilder
|
531 |
|
.fromHttpUrl(baseAddress + "/ds/manage/")
|
|
544 |
.fromHttpUrl(baseAddress + "/ds/latitude/")
|
532 |
545 |
.queryParam("dsId",id)
|
533 |
546 |
.queryParam("latitude",latitude)
|
534 |
547 |
.build().encode();
|
... | ... | |
540 |
553 |
@RequestParam(value = "longitude") String longitude) {
|
541 |
554 |
|
542 |
555 |
UriComponents uriComponents = UriComponentsBuilder
|
543 |
|
.fromHttpUrl(baseAddress + "/ds/manage/")
|
|
556 |
.fromHttpUrl(baseAddress + "/ds/longitude/")
|
544 |
557 |
.queryParam("dsId",id)
|
545 |
558 |
.queryParam("longitude",longitude)
|
546 |
559 |
.build().encode();
|
... | ... | |
552 |
565 |
@RequestParam(value = "officialname") String officialname) {
|
553 |
566 |
|
554 |
567 |
UriComponents uriComponents = UriComponentsBuilder
|
555 |
|
.fromHttpUrl(baseAddress + "/ds/manage/")
|
|
568 |
.fromHttpUrl(baseAddress + "/ds/officialname/")
|
556 |
569 |
.queryParam("dsId",id)
|
557 |
570 |
.queryParam("officialname",officialname)
|
558 |
571 |
.build().encode();
|
... | ... | |
563 |
576 |
public String updateTimezone(@RequestParam(value = "id") String id,
|
564 |
577 |
@RequestParam(value = "timezone") String timezone) {
|
565 |
578 |
UriComponents uriComponents = UriComponentsBuilder
|
566 |
|
.fromHttpUrl(baseAddress + "/ds/update/timezone")
|
|
579 |
.fromHttpUrl(baseAddress + "/ds/timezone")
|
567 |
580 |
.queryParam("dsId",id)
|
568 |
581 |
.queryParam("timezone",timezone)
|
569 |
582 |
.build().encode();
|
... | ... | |
574 |
587 |
public String updateTypology(@RequestParam(value = "id") String id,
|
575 |
588 |
@RequestParam(value = "typology") String typology) {
|
576 |
589 |
UriComponents uriComponents = UriComponentsBuilder
|
577 |
|
.fromHttpUrl(baseAddress + "/ds/update/typology")
|
|
590 |
.fromHttpUrl(baseAddress + "/ds/typology")
|
578 |
591 |
.queryParam("dsId",id)
|
579 |
592 |
.queryParam("typology",typology)
|
580 |
593 |
.build().encode();
|
... | ... | |
585 |
598 |
public String updateLogoUrl(@RequestParam(value = "id") String id,
|
586 |
599 |
@RequestParam(value = "logoUrl") String logoUrl) {
|
587 |
600 |
UriComponents uriComponents = UriComponentsBuilder
|
588 |
|
.fromHttpUrl(baseAddress + "/ds/update/logourl")
|
|
601 |
.fromHttpUrl(baseAddress + "/ds/logourl")
|
589 |
602 |
.queryParam("dsId",id)
|
590 |
603 |
.queryParam("logourl",logoUrl)
|
591 |
604 |
.build().encode();
|
1. Change converter method ( null lat/lon -> 0 )
2. Change repository api. Organize code, add new api methods.