Merge branch 'ui-redesign' of https://gitlab.eudat.eu/dmp/OpenAIRE-EUDAT-DMP-service-pilot into ui-redesign
This commit is contained in:
commit
a1c42931fd
|
@ -26,6 +26,10 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
@ -109,7 +113,9 @@ public class DatasetProfileManager {
|
|||
|
||||
public List<ExternalAutocompleteFieldModel> getAutocomplete(AutoCompleteData data, String like) {
|
||||
List<ExternalAutocompleteFieldModel> result = new LinkedList<>();
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
SimpleClientHttpRequestFactory simpleFactory = new SimpleClientHttpRequestFactory();
|
||||
|
||||
RestTemplate restTemplate = new RestTemplate(simpleFactory);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
DocumentContext jsonContext = null;
|
||||
HttpEntity<String> entity;
|
||||
|
@ -123,7 +129,11 @@ public class DatasetProfileManager {
|
|||
String url = singleData.getUrl();
|
||||
String mediaType = "";
|
||||
if (url.contains("openaire") || url.contains("zenodo")) {
|
||||
mediaType = "application/json; charset=utf-8";
|
||||
mediaType = "application/json; charset=utf-8";
|
||||
if (url.contains("zenodo")) {
|
||||
url = url.replace("?", "/?");
|
||||
}
|
||||
|
||||
url = url.replace("{like}", like.equals("") ? "*" : like);
|
||||
url = url.replace("%20", " ");
|
||||
url = url.replace("%22", "\"");
|
||||
|
@ -133,14 +143,17 @@ public class DatasetProfileManager {
|
|||
url += "?search=" + like;
|
||||
}
|
||||
|
||||
headers.setAccept(Collections.singletonList(MediaType.valueOf(mediaType)));
|
||||
if (!url.contains("zenodo")) {
|
||||
headers.setAccept(Collections.singletonList(MediaType.valueOf(mediaType)));
|
||||
}
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
entity = new HttpEntity<>("parameters", headers);
|
||||
|
||||
|
||||
response = restTemplate.exchange(url, HttpMethod.GET, entity, Object.class);
|
||||
jsonContext = JsonPath.parse(response.getBody());
|
||||
jsonItems = jsonContext.read(singleData.getOptionsRoot() + "['" + singleData.getAutoCompleteOptions().getLabel() + "','" + singleData.getAutoCompleteOptions().getValue() + "','" + singleData.getAutoCompleteOptions().getSource() + "','" + "uri" + "']");
|
||||
jsonItems.forEach(item -> result.add(new ExternalAutocompleteFieldModel(item.get(singleData.getAutoCompleteOptions().getValue()), item.get(singleData.getAutoCompleteOptions().getLabel()), item.get(singleData.getAutoCompleteOptions().getSource()), item.get("uri"))));
|
||||
jsonItems.forEach(item -> result.add(new ExternalAutocompleteFieldModel(item.get(singleData.getAutoCompleteOptions().getValue()), item.get(singleData.getAutoCompleteOptions().getLabel()), item.get(singleData.getAutoCompleteOptions().getSource()) != null ? item.get(singleData.getAutoCompleteOptions().getSource()) : singleData.getAutoCompleteOptions().getSource(), item.get("uri"))));
|
||||
break;
|
||||
case CACHED:
|
||||
headers.setAccept(Collections.singletonList(MediaType.valueOf("text/plain; charset=utf-8")));
|
||||
|
|
Loading…
Reference in New Issue