2021-02-25 20:00:05 +01:00
|
|
|
package eu.dnetlib.uoaadmintools.services;
|
|
|
|
|
|
|
|
import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig;
|
|
|
|
import eu.dnetlib.uoaadmintools.entities.Manager;
|
|
|
|
import eu.dnetlib.uoaadmintools.entities.curator.Response;
|
|
|
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
|
|
@Service
|
|
|
|
public class ManagerService {
|
|
|
|
|
2021-03-02 12:27:31 +01:00
|
|
|
enum Type {
|
|
|
|
EMAIL,
|
|
|
|
ID
|
|
|
|
}
|
|
|
|
|
2021-02-25 20:00:05 +01:00
|
|
|
@Autowired
|
|
|
|
private ManagersApiConfig config;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private RestTemplate restTemplate;
|
|
|
|
|
|
|
|
public Manager[] getManagers(String pid) {
|
2021-03-02 12:27:31 +01:00
|
|
|
return getManagers(pid, Type.EMAIL);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Manager[] getManagers(String pid, Type type) {
|
|
|
|
String url = (type == Type.EMAIL)?config.getEmail():config.getId();
|
2022-07-29 11:45:45 +02:00
|
|
|
ResponseEntity<Manager[]> responseEntity = restTemplate.getForEntity(url.replace("{community}", pid), Manager[].class);
|
|
|
|
Manager[] managers = responseEntity.getBody();
|
|
|
|
if (managers != null && responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
|
return managers;
|
2021-02-25 20:00:05 +01:00
|
|
|
} else {
|
|
|
|
throw new ContentNotFoundException("No managers has been found for community " + pid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|