package org.hso.ecommerce.controller; import org.hso.ecommerce.entities.booking.PaymentMethod; import org.hso.ecommerce.entities.shop.Address; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.user.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.Optional; @Controller public class RegisterController { @Autowired private final UserRepository userRepository = null; @PostMapping("/register") public String registerPost( HttpServletRequest request, HttpServletResponse response, @RequestParam("username") String username, @RequestParam("password") String password, @RequestParam("password2") String password2, @RequestParam("salutation") String salutation, @RequestParam("name") String name, @RequestParam("address") String address, @RequestParam("type") String type, @RequestParam("ad") String ad, HttpSession session ) { Optional user = userRepository.findByEmail(username); if (user.isPresent()) { request.setAttribute("error", "Email Adresse existiert bereits!"); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "register"; } if (!password.equals(password2)){ request.setAttribute("error", "Passwörter sind nicht gleich"); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return "register"; } //set values for new user User newUser = new User(); newUser.email = username; newUser.setPassword(password); newUser.email = username; newUser.isEmployee = false; newUser.salutation = salutation; newUser.defaultPayment = PaymentMethod.fromCreditCardNumber(""); newUser.isActive = true; newUser.created = new java.sql.Timestamp(System.currentTimeMillis()); Address newAddress = new Address(); newAddress.name = name; newAddress.addressString = address; newUser.defaultDeliveryAddress = newAddress; userRepository.save(newUser); // save newUser user = userRepository.findByEmail(username); session.setAttribute("userId", user.get().getId()); return "redirect:/"; } @GetMapping("/register") public String register() { return "register"; } }