X-Git-Url: https://juplo.de/gitweb/?p=demos%2Fpact;a=blobdiff_plain;f=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapter%2FRemoteUsersServiceConsumer.java;fp=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapter%2FRemoteUsersServiceConsumer.java;h=27fdc8fe27c0937aa043692a16ca1f98fe1d8e41;hp=0000000000000000000000000000000000000000;hb=83aa21c8c40f8d102ee5de17e81717f837c6fa94;hpb=689b6a0f28a773a7925dcff94add76ec57bb1850 diff --git a/pwreset/src/main/java/de/juplo/demos/pwreset/adapter/RemoteUsersServiceConsumer.java b/pwreset/src/main/java/de/juplo/demos/pwreset/adapter/RemoteUsersServiceConsumer.java new file mode 100644 index 0000000..27fdc8f --- /dev/null +++ b/pwreset/src/main/java/de/juplo/demos/pwreset/adapter/RemoteUsersServiceConsumer.java @@ -0,0 +1,40 @@ +package de.juplo.demos.pwreset.adapter; + +import de.juplo.demos.pwreset.domain.User; +import de.juplo.demos.pwreset.domain.UsersService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import java.util.Optional; + + +@RequiredArgsConstructor +public class RemoteUsersServiceConsumer implements UsersService +{ + private final String uriTemplate; + private final RestTemplate restTemplate; + + + @Override + public Optional getUserByEmail(String email) { + ResponseEntity response = + restTemplate.getForEntity(uriTemplate, UserDTO.class, email); + HttpStatus status = response.getStatusCode(); + UserDTO dto = response.getBody(); + switch (response.getStatusCode()) { + case OK: + return + Optional.of( + User.builder() + .id(dto.id) + .email(dto.email) + .build()); + case NOT_FOUND: + return Optional.empty(); + default: + throw new RuntimeException(status.toString()); + } + } +}