argos/dmp-backend/core/src/main/java/eu/eudat/service/deposit/DepositClientImpl.java

47 lines
2.3 KiB
Java
Raw Normal View History

2023-12-13 10:42:59 +01:00
package eu.eudat.service.deposit;
2024-03-28 10:43:12 +01:00
import eu.eudat.commonmodels.models.dmp.DmpModel;
2023-12-13 10:42:59 +01:00
import eu.eudat.depositinterface.repository.DepositClient;
import eu.eudat.depositinterface.repository.DepositConfiguration;
2024-03-28 10:43:12 +01:00
import gr.cite.tools.exception.MyApplicationException;
import gr.cite.tools.logging.LoggerService;
import gr.cite.tools.logging.MapLogEntry;
import org.slf4j.LoggerFactory;
2023-12-13 10:42:59 +01:00
import org.springframework.core.ParameterizedTypeReference;
2024-03-22 12:49:26 +01:00
import org.springframework.http.HttpHeaders;
2024-03-28 10:43:12 +01:00
import org.springframework.http.HttpStatusCode;
2024-03-22 12:49:26 +01:00
import org.springframework.http.MediaType;
2023-12-13 10:42:59 +01:00
import org.springframework.web.reactive.function.client.WebClient;
2024-03-28 10:43:12 +01:00
import reactor.core.publisher.Mono;
2023-12-13 10:42:59 +01:00
public class DepositClientImpl implements DepositClient {
2024-03-28 10:43:12 +01:00
private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(DepositClientImpl.class));
2023-12-13 10:42:59 +01:00
private final WebClient depositClient;
public DepositClientImpl(WebClient depositClient) {
this.depositClient = depositClient;
}
@Override
2024-03-04 15:36:15 +01:00
public String deposit(DmpModel dmpDepositModel, String repositoryAccessToken) throws Exception {
2024-03-28 10:43:12 +01:00
return depositClient.post().uri("", uriBuilder -> uriBuilder.queryParam("authToken", repositoryAccessToken).build()).bodyValue(dmpDepositModel).exchangeToMono(mono -> mono.statusCode().isError() ? mono.createException().flatMap(Mono::error) : mono.bodyToMono(String.class)).block();
2023-12-13 10:42:59 +01:00
}
@Override
public String authenticate(String code) {
2024-03-28 10:43:12 +01:00
return depositClient.get().uri("/authenticate/", uriBuilder -> uriBuilder.queryParam("authToken", code).build()).exchangeToMono(mono -> mono.statusCode().isError() ? mono.createException().flatMap(Mono::error) : mono.bodyToMono(String.class)).block();
2023-12-13 10:42:59 +01:00
}
@Override
public DepositConfiguration getConfiguration() {
2024-03-28 10:43:12 +01:00
return depositClient.get().uri("/configuration").exchangeToMono(mono -> mono.statusCode().isError() ? mono.createException().flatMap(Mono::error) : mono.bodyToMono(new ParameterizedTypeReference<DepositConfiguration>() {})).block();
2023-12-13 10:42:59 +01:00
}
@Override
public String getLogo() {
2024-03-28 10:43:12 +01:00
return depositClient.get().uri("/logo").exchangeToMono(mono -> mono.statusCode().isError() ? mono.createException().flatMap(Mono::error) : mono.bodyToMono(String.class)).block();
2023-12-13 10:42:59 +01:00
}
}