--- /dev/null
+package de.juplo.demos.pwreset.domain.ports.in;
+
+import de.juplo.demos.pwreset.domain.internal.PasswordResetRequest;
+import de.juplo.demos.pwreset.domain.internal.PasswordResetService;
+import lombok.RequiredArgsConstructor;
+
+import java.util.Optional;
+import java.util.UUID;
+
+
+@RequiredArgsConstructor
+public class PasswordResetPort
+{
+ private final PasswordResetService resetService;
+
+
+ public PasswordResetRequestProgressDTO createRequest(String email)
+ {
+ Optional<PasswordResetRequest> result =
+ resetService.findRequest(email);
+ PasswordResetRequest request =
+ result.orElseGet(() -> resetService.createRequest(email));
+ return PasswordResetRequestProgressDTO.from(request);
+ }
+
+ public PasswordResetRequestProgressDTO getRequest(UUID requestId)
+ {
+ return PasswordResetRequestProgressDTO.from(resetService.getRequest(requestId));
+ }
+
+ public PasswordResetRequestProgressDTO confirmRequest(UUID requestId, String code, String password)
+ {
+ return PasswordResetRequestProgressDTO.from(resetService.confirmRequest(requestId, code, password));
+ }
+}