/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package uk.ac.ebi.ep.centralservice.chembl.service;
import java.util.Optional;
import org.apache.log4j.Logger;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import uk.ac.ebi.ep.centralservice.chembl.activity.ChemblActivity;
import uk.ac.ebi.ep.centralservice.chembl.assay.ChemblAssay;
import uk.ac.ebi.ep.centralservice.chembl.mechanism.FdaApproved;
import uk.ac.ebi.ep.centralservice.chembl.molecule.ChemblMolecule;
/**
*
* @author joseph
*/
public class ChemblRestService {
private final Logger LOGGER = Logger.getLogger(ChemblRestService.class);
private RestTemplate restTemplate = null;// new RestTemplate(clientHttpRequestFactory());
public ChemblRestService() {
restTemplate = new RestTemplate(clientHttpRequestFactoryTimeout());
}
private ClientHttpRequestFactory clientHttpRequestFactory() {
return new HttpComponentsClientHttpRequestFactory();
}
private ClientHttpRequestFactory clientHttpRequestFactoryTimeout() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setReadTimeout(60000);//1 min
factory.setConnectTimeout(60000);
return factory;
}
public Optional<FdaApproved> getFdaApprovedDrug(String url) {
Optional<FdaApproved> fda = Optional.empty();
try {
fda = Optional.ofNullable(restTemplate.getForObject(url.trim(), FdaApproved.class));
} catch (RestClientException ex) {
LOGGER.error(ex.getMessage(), ex);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return fda;
}
public Optional<ChemblMolecule> getChemblMolecule(String url) {
Optional<ChemblMolecule> mol = Optional.empty();
try {
mol = Optional.ofNullable(restTemplate.getForObject(url.trim(), ChemblMolecule.class));
} catch (RestClientException ex) {
LOGGER.error(ex.getMessage(), ex);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return mol;
}
public Optional<ChemblAssay> getChemblAssay(String url) {
Optional<ChemblAssay> assay = Optional.empty();
try {
assay = Optional.ofNullable(restTemplate.getForObject(url.trim(), ChemblAssay.class));
} catch (RestClientException ex) {
LOGGER.error(ex.getMessage(), ex);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return assay;
}
public Optional<ChemblActivity> getChemblActivity(String url) {
Optional<ChemblActivity> activity = Optional.empty();
try {
activity = Optional.ofNullable(restTemplate.getForObject(url.trim(), ChemblActivity.class));
} catch (RestClientException ex) {
LOGGER.error(ex.getMessage(), ex);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return activity;
}
}