diff --git a/src/main/java/edu/msudenver/tsp/website/Application.java b/src/main/java/edu/msudenver/tsp/website/Application.java index 1b826ed..1c542a7 100644 --- a/src/main/java/edu/msudenver/tsp/website/Application.java +++ b/src/main/java/edu/msudenver/tsp/website/Application.java @@ -6,11 +6,10 @@ import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("edu.msudenver.tsp") - public class Application { - public static void main(String[] args) { + public static void main(final String[] args) { SpringApplication.run(Application.class, args); } diff --git a/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java b/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java new file mode 100644 index 0000000..5385548 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java @@ -0,0 +1,46 @@ +package edu.msudenver.tsp.website.controller; + +import edu.msudenver.tsp.services.UserService; +import edu.msudenver.tsp.services.dto.Account; +import edu.msudenver.tsp.website.forms.UserCreationForm; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +@Slf4j +@Controller +@AllArgsConstructor +@RequestMapping("/registration") +public class UserCreationController { + @Autowired + private final UserService userService; + + @GetMapping({"/",""}) + public ModelAndView createUserPage() { + LOG.info("Received request to display the user creation page: returning model with name 'User'"); + return new ModelAndView("User"); + } + + @PostMapping({"/",""}) + public String registerUser(@Validated final UserCreationForm userCreationForm, final Model model) { + model.addAttribute("username", userCreationForm.getUsername()); + model.addAttribute("password", userCreationForm.getPassword()); + model.addAttribute("emailAddress", userCreationForm.getEmailAddress()); + + LOG.info("Saving user {}...", userCreationForm); + + final Account newUser = new Account(); + newUser.setUsername(userCreationForm.getUsername()); + newUser.setPassword(userCreationForm.getPassword()); + userService.createAccount(newUser); + + return "successfulRegistration"; + } +} diff --git a/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java b/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java new file mode 100644 index 0000000..ec7f132 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java @@ -0,0 +1,30 @@ +package edu.msudenver.tsp.website.forms; + +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Getter +@Setter +public class UserCreationForm { + @NotNull + @NotEmpty + private String username; + + @NotNull + @NotEmpty + private String password; + + @NotNull + @NotEmpty + private String confirmPassword; + + @NotNull + @NotEmpty + private String emailAddress; + + @NotNull + private boolean agreedToTerms; +} diff --git a/src/main/webapp/WEB-INF/jsp/User.jsp b/src/main/webapp/WEB-INF/jsp/User.jsp new file mode 100644 index 0000000..08c6794 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/User.jsp @@ -0,0 +1,147 @@ +<%@ taglib prefix="th" uri="http://www.springframework.org/tags/form" %> +<%@ page contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + +
+ +