package com.gffny.ldrbrd.signup;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.gffny.ldrbrd.account.*;
import com.gffny.ldrbrd.support.web.*;
@Controller
public class SignupController {
private static final String SIGNUP_VIEW_NAME = "signup/signup";
@Autowired
private AccountRepository accountRepository;
@Autowired
private UserService userService;
@RequestMapping(value = "signup")
public String signup(Model model) {
model.addAttribute(new SignupForm());
return SIGNUP_VIEW_NAME;
}
@RequestMapping(value = "signup", method = RequestMethod.POST)
public String signup(@Valid @ModelAttribute SignupForm signupForm, Errors errors, RedirectAttributes ra) {
if (errors.hasErrors()) {
return SIGNUP_VIEW_NAME;
}
Account account = accountRepository.save(signupForm.createAccount());
userService.signin(account);
// see /WEB-INF/i18n/messages.properties and /WEB-INF/views/homeSignedIn.html
MessageHelper.addSuccessAttribute(ra, "signup.success");
return "redirect:/";
}
}