X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapters%2Fin%2FWebController.java;fp=pwreset%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fpwreset%2Fadapters%2Fin%2FWebController.java;h=b535a272152a45326c49371d9aaf801397195663;hb=2abe7756a3f2dac635611726450dcf28aebc79c7;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..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.request(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.get(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.confirm( - 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;