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/app/RequestController.java

260 lines
7.8 KiB
Java
Raw Normal View History

package org.hso.ecommerce.app;
import org.hso.ecommerce.contoller.Login;
import org.hso.ecommerce.db.CustomerRepository;
import org.hso.ecommerce.entities.Customer;
2020-01-05 01:41:45 +01:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import java.util.UUID;
/**
* TODO clean up this class
*/
@Controller
public class RequestController {
private final CustomerRepository customerRepo;
2020-01-05 01:41:45 +01:00
@Autowired
public RequestController(CustomerRepository customerRepo) {
this.customerRepo = customerRepo;
}
@GetMapping("/")
public String greeting() {
return "redirect:/home";
}
@GetMapping("/home")
public String home(@CookieValue(value = "loginToken", defaultValue = "") String loginToken, Model model) {
if (!loginToken.equals("")) {
model.addAttribute(new Customer());
}
return "home";
}
2020-01-11 16:39:34 +01:00
@GetMapping("/articledetail")
public String articledetail() {
2020-01-23 18:46:49 +01:00
return "articleDetail";
}
2020-01-11 16:39:34 +01:00
@GetMapping("/searchresults")
public String searchresults() {
return "searchResults";
2020-01-18 15:34:54 +01:00
}
@GetMapping("/shoppingcart")
public String shoppingcart() {
return "shoppingCart";
}
2020-01-11 16:39:34 +01:00
2020-01-16 21:01:15 +01:00
@GetMapping("/intern/customerdetail")
2020-01-22 19:27:45 +01:00
public String customerdetail() {
// TODO @PH
2020-01-16 21:01:15 +01:00
return "intern/customer";
2020-01-22 19:27:45 +01:00
}
2020-01-16 21:01:15 +01:00
@GetMapping("/intern/customerorders")
public String customerorders() {
2020-01-22 19:27:45 +01:00
// TODO @PH
2020-01-16 21:01:15 +01:00
return "intern/customerorders";
}
@GetMapping("/intern/accounting")
public String accounting() {
return "intern/accounting";
}
2020-01-22 19:27:45 +01:00
@GetMapping("/intern/accountingvat")
public String accountingvat() {
return "intern/accountingvat";
}
2020-01-16 21:01:15 +01:00
2020-01-22 19:27:45 +01:00
@GetMapping("/intern/accountingmain")
public String accountingmain() {
2020-01-16 21:01:15 +01:00
return "intern/accountingmain";
2020-01-22 19:27:45 +01:00
}
2020-01-16 21:01:15 +01:00
2020-01-19 18:43:19 +01:00
@GetMapping("/intern/accountingmanual")
public String accountingmanual() {
return "intern/accountingmanual";
}
2020-01-16 21:01:15 +01:00
@GetMapping("/intern/addarticle")
public String addarticle() {
return "intern/addarticle";
}
@GetMapping("/intern/articles")
public String articles() {
return "intern/articles";
}
2020-01-12 18:00:40 +01:00
@GetMapping("/intern/listedarticles")
public String listedarticles() {
return "intern/listedArticles";
}
2020-01-12 18:00:40 +01:00
@GetMapping("/intern/listedarticlesedit")
public String listedarticlesedit() {
return "intern/listedArticlesEdit";
}
@GetMapping("/notification")
public String notification() {
return "notification";
}
@GetMapping("/intern/customers_allOrders_overview")
2020-01-22 19:27:45 +01:00
public String customers_allOrders_overview() {
return "intern/customers_allOrders_overview";
}
@GetMapping("/intern/customers_order_detailview")
2020-01-22 19:27:45 +01:00
public String customers_order_detailview() {
return "intern/customers_order_detailview";
}
@GetMapping("/intern/customers_overview")
2020-01-22 19:27:45 +01:00
public String customers_overview() {
return "intern/customers_overview";
}
@GetMapping("/intern/customers_detailview_bookings_orders")
2020-01-22 19:27:45 +01:00
public String customers_detailview_bookings_orders() {
return "intern/customers_detailview_bookings_orders";
}
@GetMapping("/intern/suppliers_overview")
2020-01-22 19:27:45 +01:00
public String suppliers_overview() {
return "intern/suppliers_overview";
}
@GetMapping("/intern/suppliers_detailview_bookings_orders")
2020-01-22 19:27:45 +01:00
public String suppliers_detailview_bookings_orders() {
return "intern/suppliers_detailview_bookings_orders";
}
@GetMapping("/intern/suppliers_allOrders_overview")
2020-01-22 19:27:45 +01:00
public String suppliers_allOrders_overview() {
return "intern/suppliers_allOrders_overview";
}
@GetMapping("/intern/suppliers_order_detailview")
2020-01-22 19:27:45 +01:00
public String suppliers_order_detailview() {
return "intern/suppliers_order_detailview";
}
@GetMapping("/customer/accountsettings")
public String customerAccountSettings(Model model) {
Customer customer = new Customer();
customer.setFirstname("Max");
customer.setLastname("Mustermann");
customer.setUsername("Max.TestKunde");
customer.setPassword("test123");
model.addAttribute(customer);
model.addAttribute("fullname", customer.getFirstname() + " " + customer.getLastname());
model.addAttribute("email", "Test.User@ecommere.com");
model.addAttribute("street", "Musterstraße 42a");
model.addAttribute("city", "Musterstadt");
model.addAttribute("zipcode", "12345");
model.addAttribute("country", "Musterland");
return "/customer/accountSettings";
}
2020-01-22 19:27:45 +01:00
@GetMapping("/customer/orderhistory")
public String customerOrderHistory() {
return "customer/orderHistory";
}
@GetMapping("/customer/bonusprogram")
public String customerBonusProgram() {
return "customer/bonusProgram";
}
@RequestMapping(value = "/updateAccountSettings", method = RequestMethod.POST, params = "action=updateAccountSettings")
public String updateAccountSettings(@ModelAttribute Customer customer, HttpServletResponse response) {
// do the login magic and get a loginToken
System.out.println(customer.username);
System.out.println(customer.password);
return "/customer/accountsettings";
}
@GetMapping("/login")
public String login(@CookieValue(value = "loginToken", defaultValue = "") String loginToken, Model model) {
model.addAttribute(new Customer());
System.out.println(loginToken); // TODO if cookie is present, redirect to home
return "login";
}
2020-01-22 19:27:45 +01:00
@RequestMapping(value = "/login", method = RequestMethod.POST, params = "action=login")
public String loginAction(@ModelAttribute Customer customer, HttpServletResponse response) {
Cookie cookie = new Login(customerRepo).getLoginToken(customer);
if (cookie != null) {
response.addCookie(cookie);
return "redirect:home";
} else {
return "redirect:login"; // redirect so the input files get cleared, otherwise only pwd gets cleared
}
}
@GetMapping("/register")
public String register(@CookieValue(value = "loginToken", defaultValue = "") String loginToken, Model model) {
model.addAttribute(new Customer());
System.out.println(loginToken); // TODO if cookie is present, redirect to home
return "register";
}
2020-01-22 19:27:45 +01:00
@RequestMapping(value = "/register", method = RequestMethod.POST, params = "action=register")
public String registerAction(@ModelAttribute Customer customer, HttpServletResponse response) {
// do the register magic and get a loginToken
System.out.println(customer.username);
System.out.println(customer.password);
if (customerRepo.findByUsername(customer.username).size() != 0) {
// TODO
System.out.println("The customer exists already");
return "redirect:register";
} else {
customerRepo.save(customer);
System.out.println(customerRepo.findByUsername(customer.username).size());
}
// return a login token after successful registration
String loginToken = UUID.randomUUID().toString();
// set the loginToken as session cookie
Cookie cookie = new Cookie("loginToken", loginToken);
response.addCookie(cookie);
return "home";
}
@GetMapping("/about")
public String about() {
return "about";
}
@GetMapping("/terms")
public String terms() {
return "terms";
}
@GetMapping("/privacy")
public String privacy() {
return "privacy";
}
}