WIP
[demos/pact] / pwreset / src / main / java / de / juplo / demos / pwreset / domain / ports / in / PasswordResetPort.java
diff --git a/pwreset/src/main/java/de/juplo/demos/pwreset/domain/ports/in/PasswordResetPort.java b/pwreset/src/main/java/de/juplo/demos/pwreset/domain/ports/in/PasswordResetPort.java
new file mode 100644 (file)
index 0000000..7f8a3f0
--- /dev/null
@@ -0,0 +1,35 @@
+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));
+  }
+}