This repository has been archived on 2020-08-02. You can view files and clone it, but cannot push or open issues or pull requests.
e-commerce/prototype/src/main/java/org/hso/ecommerce/controller/RegisterController.java

82 lines
2.8 KiB
Java
Raw Normal View History

2020-05-19 15:41:43 +02:00
package org.hso.ecommerce.controller;
2020-05-27 15:10:12 +02:00
import org.hso.ecommerce.entities.booking.PaymentMethod;
2020-05-19 18:47:15 +02:00
import org.hso.ecommerce.entities.shop.Address;
2020-05-19 15:41:43 +02:00
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;
2020-06-01 11:13:03 +02:00
import javax.servlet.http.HttpSession;
2020-05-19 15:41:43 +02:00
import java.util.Optional;
@Controller
public class RegisterController {
@Autowired
private final UserRepository userRepository = null;
@PostMapping("/register")
public String registerPost(
2020-05-19 15:41:43 +02:00
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,
2020-06-01 11:13:03 +02:00
@RequestParam("ad") String ad,
HttpSession session
2020-05-19 15:41:43 +02:00
)
{
Optional<User> user = userRepository.findByEmail(username);
if (user.isPresent()) {
request.setAttribute("error", "Email Adresse existiert bereits!");
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
2020-05-19 15:41:43 +02:00
return "register";
}
if (!password.equals(password2)){
request.setAttribute("error", "Passwörter sind nicht gleich");
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return "register";
}
2020-05-19 18:47:15 +02:00
//set values for new user
2020-05-19 15:41:43 +02:00
User newUser = new User();
2020-05-19 18:47:15 +02:00
newUser.email = username;
newUser.setPassword(password);
newUser.email = username;
newUser.isEmployee = false;
2020-05-27 14:55:51 +02:00
newUser.salutation = salutation;
2020-05-27 15:10:12 +02:00
newUser.defaultPayment = PaymentMethod.fromCreditCardNumber("");
2020-05-19 18:47:15 +02:00
newUser.isActive = true;
newUser.created = new java.sql.Timestamp(System.currentTimeMillis());
2020-05-19 15:41:43 +02:00
2020-05-19 18:47:15 +02:00
Address newAddress = new Address();
newAddress.name = name;
newAddress.addressString = address;
newUser.defaultDeliveryAddress = newAddress;
2020-05-19 15:41:43 +02:00
2020-05-19 18:47:15 +02:00
userRepository.save(newUser); // save newUser
user = userRepository.findByEmail(username);
session.setAttribute("userId", user.get().getId());
return "redirect:/";
2020-05-19 15:41:43 +02:00
}
@GetMapping("/register")
public String register() {
return "register";
}
}