Skip to content
Snippets Groups Projects
Commit 45f50f75 authored by Jan Zickermann's avatar Jan Zickermann
Browse files

#4 OZG-7112 Use generated api-client

parent c50443ee
No related branches found
No related tags found
1 merge request!4Resolve "Senden von Nachrichten vorbereiten"
Pipeline #1173 failed
......@@ -156,6 +156,8 @@
<serializationLibrary>jackson</serializationLibrary>
<library>webclient</library>
<annotationLibrary>swagger2</annotationLibrary>
<apiPackage>de.ozgcloud.nachrichten.postfach.osiv2.gen.api</apiPackage>
<modelPackage>de.ozgcloud.nachrichten.postfach.osiv2.gen.model</modelPackage>
</configOptions>
</configuration>
</execution>
......
......@@ -2,32 +2,32 @@ package de.ozgcloud.nachrichten.postfach.osiv2;
import java.util.stream.Stream;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
import de.ozgcloud.nachrichten.postfach.PostfachRemoteService;
import de.ozgcloud.nachrichten.postfach.osiv2.transfer.PostfachApiFacadeService;
import de.ozgcloud.nachrichten.postfach.osiv2.transfer.RequestMapper;
import de.ozgcloud.nachrichten.postfach.osiv2.transfer.ResponseMapper;
import lombok.extern.log4j.Log4j2;
@Service
@ConditionalOnProperty("ozgcloud.osiv2-postfach.enabled")
@Log4j2
public record OsiPostfachRemoteService(
@Qualifier("osi2PostfachWebClient") WebClient webClient
PostfachApiFacadeService postfachApiFacadeService,
RequestMapper requestMapper,
ResponseMapper responseMapper
) implements PostfachRemoteService {
public static final String POSTFACH_TYPE_OSIV2 = "OSIV2";
@Override
public void sendMessage(PostfachNachricht nachricht) {
webClient.get()
.uri("/_metrics")
.retrieve()
.bodyToMono(String.class)
.doOnNext(metricsString -> LOG.info("Metrics: {}", metricsString))
.block();
// TODO
postfachApiFacadeService.sendMessage(
requestMapper.toMailboxId(nachricht),
requestMapper.mapOutSendMessageRequestV2(nachricht)
);
}
@Override
......
......@@ -15,6 +15,7 @@ import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.reactive.function.client.WebClient;
import de.ozgcloud.nachrichten.postfach.osiv2.gen.ApiClient;
import lombok.RequiredArgsConstructor;
import reactor.netty.http.client.HttpClient;
import reactor.netty.transport.ProxyProvider;
......@@ -27,8 +28,13 @@ public class WebClientConfiguration {
private final OsiPostfachProperties.ApiConfiguration apiConfiguration;
private final OsiPostfachProperties.ProxyConfiguration proxyConfiguration;
@Bean("osi2PostfachWebClient")
public WebClient osi2PostfachWebClient(
@Bean
public ApiClient apiClient(ReactiveClientRegistrationRepository clientRegistrations) {
return new ApiClient(osi2PostfachWebClient(clientRegistrations));
}
private WebClient osi2PostfachWebClient(
ReactiveClientRegistrationRepository clientRegistrations) {
return WebClient.builder()
.baseUrl(apiConfiguration.getUrl())
......
package de.ozgcloud.nachrichten.postfach.osiv2.transfer;
import org.springframework.stereotype.Service;
import de.ozgcloud.nachrichten.postfach.osiv2.gen.api.MessageExchangeApi;
import de.ozgcloud.nachrichten.postfach.osiv2.gen.model.OutSendMessageRequestV2;
@Service
public record PostfachApiFacadeService(
MessageExchangeApi messageExchangeApi
) {
public void sendMessage(String mailboxId, OutSendMessageRequestV2 sendMessageRequest) {
messageExchangeApi.messageExchangeV1SendMailboxIdPost(
mailboxId,
sendMessageRequest
).block();
// TODO handle exceptions?
}
}
package de.ozgcloud.nachrichten.postfach.osiv2.transfer;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
import de.ozgcloud.nachrichten.postfach.osiv2.gen.model.OutSendMessageRequestV2;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
public interface RequestMapper {
@Mapping(target = "sequencenumber", ignore = true)
@Mapping(target = "body", source = "mailBody")
@Mapping(target = "displayName", ignore = true)
@Mapping(target = "originSender", ignore = true)
@Mapping(target = "replyAction", ignore = true)
@Mapping(target = "eidasLevel", ignore = true)
@Mapping(target = "isObligatory", ignore = true)
@Mapping(target = "isHtml", ignore = true)
@Mapping(target = "files", ignore = true)
@Mapping(target = "references", ignore = true)
OutSendMessageRequestV2 mapOutSendMessageRequestV2(PostfachNachricht nachricht);
default String toMailboxId(PostfachNachricht nachricht) {
return nachricht.getPostfachAddress().getIdentifier().toString();
}
}
package de.ozgcloud.nachrichten.postfach.osiv2.transfer;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR)
public class ResponseMapper {
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment