X-Git-Url: https://juplo.de/gitweb/?p=demos%2Fpact;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=79ad14e9d71e0c35a8f42773ea29ebf7aab0f852;hp=0000000000000000000000000000000000000000;hb=fd8887be198e30aa19e149ea601d90c809f5de93;hpb=aece4ee08c356be18cedf15756de21cf33befcfd 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 new file mode 100644 index 0000000..79ad14e --- /dev/null +++ b/pwreset/src/main/java/de/juplo/demos/pwreset/adapters/in/WebController.java @@ -0,0 +1,73 @@ +package de.juplo.demos.pwreset.adapters.in; + +import de.juplo.demos.pwreset.api.domain.PasswordResetRequest; +import de.juplo.demos.pwreset.api.domain.PasswordRestService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.UUID; + + +@Controller +@RequiredArgsConstructor +public class WebController +{ + private final PasswordRestService passwordRestService; + + + @GetMapping("/") + public String requestForm() + { + return "request"; + } + + @PostMapping("/") + public void resetRequest( + @RequestParam String email, + HttpServletResponse httpServletResponse) + throws + IOException + { + PasswordResetRequest resetRequest = passwordRestService.requestPasswordReset(email); + httpServletResponse.sendRedirect(resetRequest.getUserId().toString()); + } + + @GetMapping("/{id}") + public ModelAndView getResetRequest(@PathVariable UUID id) + { + PasswordResetRequest resetRequest = passwordRestService.getPasswordReset(id); + ModelAndView mav = new ModelAndView("confirm"); + return "confirm"; + } + + @PutMapping("/{id") + public ModelAndView confirmResetRequest( + @PathVariable UUID id, + @RequestParam String code, + @RequestParam String password) + { + ModelAndView mav = new ModelAndView("confirm"); + mav.addObject("code", code); + mav.addObject("password", password); + + try + { + PasswordResetRequest resetRequest = + passwordRestService.confirmPasswordRequest( + id, + code, + password); + + } + catch (Exception e) + { + mav.addObject("message", e.getMessage()); + } + + return mav; + } +}