X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapters%2Fin%2FWebController.java;h=b535a272152a45326c49371d9aaf801397195663;hb=2abe7756a3f2dac635611726450dcf28aebc79c7;hp=79ad14e9d71e0c35a8f42773ea29ebf7aab0f852;hpb=fd8887be198e30aa19e149ea601d90c809f5de93;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 79ad14e..b535a27 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,6 +1,6 @@ package de.juplo.demos.pwreset.adapters.in; -import de.juplo.demos.pwreset.api.domain.PasswordResetRequest; +import de.juplo.demos.pwreset.api.domain.PasswordResetRequestProgress; import de.juplo.demos.pwreset.api.domain.PasswordRestService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; @@ -20,52 +20,68 @@ public class WebController @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.requestPasswordReset(email); - httpServletResponse.sendRedirect(resetRequest.getUserId().toString()); + PasswordResetRequestProgress progress = passwordRestService.request(email); + httpServletResponse.sendRedirect(progress.getRequestId().toString()); } @GetMapping("/{id}") public ModelAndView getResetRequest(@PathVariable UUID id) { - PasswordResetRequest resetRequest = passwordRestService.getPasswordReset(id); - ModelAndView mav = new ModelAndView("confirm"); - return "confirm"; + PasswordResetRequestProgress progress = passwordRestService.get(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"); + PasswordResetRequestProgress progress = + passwordRestService.confirm( + id, + code, + password); + + ModelAndView mav = createModelAndView(progress); + mav.addObject("code", code); mav.addObject("password", password); - try - { - PasswordResetRequest resetRequest = - passwordRestService.confirmPasswordRequest( - id, - code, - password); + return mav; + } + + ModelAndView createModelAndView(PasswordResetRequestProgress 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;