package pl.bartoszliszka.LessonsOfSwim.controllers;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import pl.bartoszliszka.LessonsOfSwim.models.UserEntity;
import pl.bartoszliszka.LessonsOfSwim.models.services.UserService;
import javax.validation.Valid;
@Controller
public class LoginController {
@Autowired
UserService userService;
@RequestMapping("/login")
public String login(){
return "login";
}
@RequestMapping("/register")
public String register(Model model){
model.addAttribute("user", new UserEntity());
return "register";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String saveUser(@Valid User user){
userService.saveUser(user);
return "redirect:/login";
}
}
package pl.bartoszliszka.LessonsOfSwim.models;
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
@Entity
@Data
@Table(name = "user")
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_user")
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
@Column(name = "password_repeat")
private String passwordRepeat;
@Column(name = "phone_number")
private String phoneNumber;
@Column(name = "gender")
private String gender;
@Column(name = "date_of_birth")
private Date dateOfBirth;
public UserEntity() {
}
public UserEntity(String firstName, String lastName, String email, String password, String passwordRepeat, String phoneNumber, String gender, Date dateOfBirth) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.passwordRepeat = passwordRepeat;
this.phoneNumber = phoneNumber;
this.gender = gender;
this.dateOfBirth = dateOfBirth;
}
}
package pl.bartoszliszka.LessonsOfSwim.models.services;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import pl.bartoszliszka.LessonsOfSwim.models.repository.UserRepository;
import javax.transaction.Transactional;
@Component
public class UserService {
@Autowired
UserRepository userRepository;
@Transactional
public void saveUser(User user) {
userRepository.createUser(user);
}
}
package pl.bartoszliszka.LessonsOfSwim.models.repository;
import org.apache.catalina.User;
import org.springframework.stereotype.Repository;
import pl.bartoszliszka.LessonsOfSwim.models.UserEntity;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
import java.util.Date;
@Repository
public class UserRepository {
@PersistenceContext
private EntityManager em;
@Transactional
public void createUser(User user){
em.persist(user);
}
@Transactional
public void createUser(String firstName, String lastName, String email, String password, String passwordRepeat, String phoneNumber, String gender, Date dateOfBirth){
UserEntity user=new UserEntity(firstName, lastName, email, password, passwordRepeat, phoneNumber, gender, dateOfBirth);
em.persist(user);
}
@Transactional
public User getUser(int id){
return em.find(User.class, id);
}
}