WIP
[demos/pact] / pwreset / src / main / java / de / juplo / demos / pwreset / domain / ports / in / PasswordResetPort.java
1 package de.juplo.demos.pwreset.domain.ports.in;
2
3 import de.juplo.demos.pwreset.domain.internal.PasswordResetRequest;
4 import de.juplo.demos.pwreset.domain.internal.PasswordResetService;
5 import lombok.RequiredArgsConstructor;
6
7 import java.util.Optional;
8 import java.util.UUID;
9
10
11 @RequiredArgsConstructor
12 public class PasswordResetPort
13 {
14   private final PasswordResetService resetService;
15
16
17   public PasswordResetRequestProgressDTO createRequest(String email)
18   {
19     Optional<PasswordResetRequest> result =
20         resetService.findRequest(email);
21     PasswordResetRequest request =
22         result.orElseGet(() -> resetService.createRequest(email));
23     return PasswordResetRequestProgressDTO.from(request);
24   }
25
26   public PasswordResetRequestProgressDTO getRequest(UUID requestId)
27   {
28     return PasswordResetRequestProgressDTO.from(resetService.getRequest(requestId));
29   }
30
31   public PasswordResetRequestProgressDTO confirmRequest(UUID requestId, String code, String password)
32   {
33     return PasswordResetRequestProgressDTO.from(resetService.confirmRequest(requestId, code, password));
34   }
35 }