--- /dev/null
+package de.juplo.demos.pwreset.adapters.out;
+
+import de.juplo.demos.pwreset.domain.ports.out.UsersPort;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Optional;
+import java.util.UUID;
+
+
+@RequiredArgsConstructor
+public class UsersServiceGateway implements UsersPort
+{
+ private final String uriTemplate;
+ private final RestTemplate restTemplate;
+
+
+ @Override
+ public Optional<UUID> getUserByEmail(String email)
+ {
+ ResponseEntity<UserDTO> response =
+ restTemplate.getForEntity(uriTemplate, UserDTO.class, email);
+
+ HttpStatus status = response.getStatusCode();
+ UserDTO dto = response.getBody();
+
+ switch (response.getStatusCode())
+ {
+ case OK:
+ return
+ Optional.of(dto.id);
+
+ case NOT_FOUND:
+ return Optional.empty();
+
+ default:
+ throw new RuntimeException(status.toString());
+ }
+ }
+
+ @Override
+ public void setPassword(UUID userId, String password)
+ {
+
+ }
+}