1 package de.juplo.demos.pwreset.domain.ports.in;
3 import de.juplo.demos.pwreset.domain.internal.PasswordResetProgress;
4 import de.juplo.demos.pwreset.domain.internal.PasswordResetRequest;
5 import de.juplo.demos.pwreset.domain.internal.PasswordResetRequestProgress;
6 import lombok.RequiredArgsConstructor;
9 import java.time.ZonedDateTime;
10 import java.util.Optional;
11 import java.util.UUID;
13 import static de.juplo.demos.pwreset.domain.internal.PasswordResetProgress.Status.*;
16 @RequiredArgsConstructor
18 public class PasswordResetRequestProgressDTO
20 private final UUID requestId;
21 private final boolean accepted;
22 private final String message;
23 private final Optional<ZonedDateTime> created;
24 private final Optional<ZonedDateTime> confirmed;
25 private final Optional<ZonedDateTime> accomplished;
27 public static PasswordResetRequestProgressDTO from(
28 PasswordResetRequest request,
29 PasswordResetProgress progress)
32 new PasswordResetRequestProgressDTO(
34 progress.getStatus() != CONFIRMATION_DENIED,
35 progress.getMessage(),
36 Optional.of(request.getCreated()),
37 progress.getStatus() == CONFIRMATION_DENIED
39 : Optional.of(request.getConfirmed()),
40 progress.getStatus() == ACCOMPLISHED
42 : Optional.of(request.getAccomplihed()));