diff --git a/core/src/main/java/org/opencdmp/deposit/zenodorepository/service/zenodo/ZenodoDepositServiceImpl.java b/core/src/main/java/org/opencdmp/deposit/zenodorepository/service/zenodo/ZenodoDepositServiceImpl.java index 99897d7..cfb7703 100644 --- a/core/src/main/java/org/opencdmp/deposit/zenodorepository/service/zenodo/ZenodoDepositServiceImpl.java +++ b/core/src/main/java/org/opencdmp/deposit/zenodorepository/service/zenodo/ZenodoDepositServiceImpl.java @@ -3,14 +3,12 @@ package org.opencdmp.deposit.zenodorepository.service.zenodo; import com.fasterxml.jackson.databind.ObjectMapper; import gr.cite.tools.exception.MyApplicationException; import gr.cite.tools.logging.LoggerService; -import gr.cite.tools.logging.MapLogEntry; import org.opencdmp.commonmodels.models.FileEnvelopeModel; import org.opencdmp.commonmodels.models.dmp.DmpModel; import org.opencdmp.depositbase.repository.DepositConfiguration; import org.opencdmp.deposit.zenodorepository.model.ZenodoDeposit; import org.opencdmp.deposit.zenodorepository.model.builder.ZenodoBuilder; import org.opencdmp.deposit.zenodorepository.service.storage.FileStorageService; -import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.ParameterizedTypeReference; @@ -185,7 +183,11 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService { String newVersionUrl = links.get(ZENODO_LINKS_LATEST_DRAFT) + "/actions/newversion" + "?access_token=" + zenodoToken; logger.debug("new version url: " + newVersionUrl); createResponse = zenodoClient.post().uri(newVersionUrl) - .bodyValue(null).exchangeToMono(mono -> mono.bodyToMono(new ParameterizedTypeReference>>() {})).block(); + .bodyValue(null).exchangeToMono(mono -> + mono.statusCode().isError() ? + mono.createException().flatMap(Mono::error) : + mono.bodyToMono(new ParameterizedTypeReference>>() {}) + ).block(); logger.debug("createResponse-newVersion:"); logger.debug(objectMapper.writeValueAsString(createResponse)); links = createResponse == null ? new LinkedHashMap<>() : createResponse.getOrDefault(ZENODO_LINKS, new LinkedHashMap<>()); @@ -289,14 +291,11 @@ public class ZenodoDepositServiceImpl implements ZenodoDepositService { map.add(REDIRECT_URI, depositConfiguration.getRedirectUri()); try { - Map values = client.post().uri(depositConfiguration.getRepositoryAccessTokenUrl()).bodyValue(map).exchangeToMono(mono -> { - if (!mono.statusCode().is2xxSuccessful()) { - mono.createException(); - throw new HttpClientErrorException(mono.statusCode()); - } - return mono.bodyToMono(new ParameterizedTypeReference>() { - }); - }).block(); + Map values = client.post().uri(depositConfiguration.getRepositoryAccessTokenUrl()).bodyValue(map).exchangeToMono(mono -> + mono.statusCode().isError() ? + mono.createException().flatMap(Mono::error) : + mono.bodyToMono(new ParameterizedTypeReference>() { + })).block(); return values != null ? (String) values.getOrDefault(ACCESS_TOKEN, null) : null; } catch (HttpClientErrorException ex) {