X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapters%2Fin%2FWebController.java;h=00f2510c3a0f599ed6ba4e5e0f10e28f5c6faaf7;hb=7df01dd4a110b02cf438b8e24d0e8f7b9c025d00;hp=b848ce2936153d97fcb257cd226f8a5a144d9b21;hpb=e453e15a85e62e3b44f4b60e5961fe51dc4b5d56;p=demos%2Fpact diff --git a/pwreset/src/main/java/de/juplo/demos/pwreset/adapters/in/WebController.java b/pwreset/src/main/java/de/juplo/demos/pwreset/adapters/in/WebController.java index b848ce2..00f2510 100644 --- a/pwreset/src/main/java/de/juplo/demos/pwreset/adapters/in/WebController.java +++ b/pwreset/src/main/java/de/juplo/demos/pwreset/adapters/in/WebController.java @@ -1,7 +1,7 @@ package de.juplo.demos.pwreset.adapters.in; -import de.juplo.demos.pwreset.api.domain.PasswordResetRequest; -import de.juplo.demos.pwreset.api.domain.PasswordRestService; +import de.juplo.demos.pwreset.domain.ports.in.PasswordResetRequestProgressDTO; +import de.juplo.demos.pwreset.domain.ports.in.PasswordResetPort; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -16,56 +16,72 @@ import java.util.UUID; @RequiredArgsConstructor public class WebController { - private final PasswordRestService passwordRestService; + private final PasswordResetPort passwordResetPort; @GetMapping("/") - public String requestForm() + public String welcome() { return "request"; } @PostMapping("/") - public void resetRequest( + public void createResetRequest( @RequestParam String email, HttpServletResponse httpServletResponse) throws IOException { - PasswordResetRequest resetRequest = passwordRestService.request(email); - httpServletResponse.sendRedirect(resetRequest.getUserId().toString()); + PasswordResetRequestProgressDTO progress = passwordResetPort.createRequest(email); + httpServletResponse.sendRedirect(progress.getRequestId().toString()); } @GetMapping("/{id}") public ModelAndView getResetRequest(@PathVariable UUID id) { - PasswordResetRequest resetRequest = passwordRestService.get(id); - ModelAndView mav = new ModelAndView("confirm"); - return "confirm"; + PasswordResetRequestProgressDTO progress = passwordResetPort.getRequest(id); + return createModelAndView(progress); } - @PutMapping("/{id") + @PutMapping("/{id}") public ModelAndView confirmResetRequest( @PathVariable UUID id, @RequestParam String code, @RequestParam String password) { - ModelAndView mav = new ModelAndView("confirm"); + PasswordResetRequestProgressDTO progress = + passwordResetPort.confirmRequest( + id, + code, + password); + + ModelAndView mav = createModelAndView(progress); + mav.addObject("code", code); mav.addObject("password", password); - try - { - PasswordResetRequest resetRequest = - passwordRestService.confirm( - id, - code, - password); + return mav; + } + + ModelAndView createModelAndView(PasswordResetRequestProgressDTO progress) + { + ModelAndView mav = new ModelAndView(); + mav.addObject("progress", progress); + if (progress.isAccepted()) + { + if (progress.getConfirmed().isEmpty()) + { + mav.setViewName("confirm"); + } + else + { + mav.setViewName("confirmed"); + } } - catch (Exception e) + else { - mav.addObject("message", e.getMessage()); + mav.setViewName("denied"); } return mav;