package org.hso.ecommerce.app; 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; /** * TODO clean up this class */ @Controller public class RequestController { @Autowired private final UserRepository userRepository = null; static int notSoRandom = 0; @GetMapping("/login") public String login() { return "login"; } @PostMapping("/login") public String loginPost( HttpServletRequest request, HttpServletResponse response, @RequestParam("username") String username, @RequestParam("password") String password, HttpSession session ) { String gto = (String) session.getAttribute("afterLogin"); Optional user = userRepository.findByEmail(username); if (!user.isPresent()) { request.setAttribute("error", "Email Adresse falsch."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "login"; } if (!user.get().validatePassword(password)) { request.setAttribute("error", "Passwort falsch."); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); return "login"; } session.setAttribute("userId", user.get().getId()); if (gto != null && gto.startsWith("/")) { return "redirect:" + gto; } else { return "redirect:/"; } } @PostMapping("/logout") public String logoutPost(HttpServletResponse response, HttpSession session ) { session.removeAttribute("userId"); return "redirect:/"; } @GetMapping("/register") public String register() { return "register"; } @PostMapping("/register") public String registerPost( @RequestParam("username") String username, @RequestParam("password") String password, @RequestParam("password2") String password2, @RequestParam("type") String type ) { return "redirect:/"; } @GetMapping("/shop/search") public String shopSearch() { return "shop/search"; } @GetMapping("/intern/") public String intern() { return "intern/index"; } @GetMapping("/intern/listedArticles/") public String internListedArticles() { return "intern/listedArticles/index"; } @GetMapping("/intern/listedArticles/{id}") public String internListedArticlesId() { return "intern/listedArticles/id"; } @GetMapping("/intern/articles/") public String internArticles() { return "intern/articles/index"; } @GetMapping("/intern/articles/{id}") public String internArticlesId() { return "intern/articles/id"; } @GetMapping("/intern/customers/") public String internCustomers() { return "intern/customers/index"; } @GetMapping("/intern/customers/{id}") public String internCustomersId() { return "intern/customers/id"; } @GetMapping("/intern/customerOrders/") public String internCustomerOrder() { return "intern/customerOrders/index"; } @GetMapping("/intern/customerOrders/{id}") public String internCustomerOrdersId() { return "intern/customerOrders/id"; } @GetMapping("/intern/suppliers/") public String internSuppliers() { return "intern/suppliers/index"; } @GetMapping("/intern/suppliers/{id}") public String internSuppliersId() { return "intern/suppliers/id"; } @GetMapping("/intern/supplierOrders/") public String internSupplierOrders() { return "intern/supplierOrders/index"; } @GetMapping("/intern/supplierOrders/{id}") public String internSupplierOrdersId() { return "intern/supplierOrders/id"; } /* @GetMapping("/intern/suppliersOffers") public String internSuppliersOffers() { return "intern/offeredArticles/index"; } */ @GetMapping("/intern/accounting/") public String accounting() { return "intern/accounting/index"; } @GetMapping("/intern/accounting/vat") public String accountingVat() { return "intern/accounting/vat"; } @GetMapping("/intern/accounting/main") public String accountingIntern() { return "intern/accounting/main"; } @GetMapping("/intern/accounting/addManual") public String accountingAddManual() { return "intern/accounting/addManual"; } @GetMapping("/intern/warehouse/") public String accountingWarehouse() { return "intern/warehouse/index"; } @GetMapping("/intern/warehouse/todo") public String accountingWarehouseTodo() { return "intern/warehouse/todo"; } @GetMapping("/intern/warehouse/addManual") public String accountingWarehouseAddManual() { return "intern/warehouse/addManual"; } @PostMapping("/intern/warehouse/progress/{id}") public String accountingWarehouseProgressIdPost(HttpServletResponse response) { if ((notSoRandom++) % 2 == 1) { return "redirect:/intern/warehouse/progress/450"; } else { response.setStatus(409); return "intern/warehouse/error_progress_failed"; } } @GetMapping("/intern/warehouse/progress/{id}") public String accountingWarehouseProgressId() { return "intern/warehouse/id_progress"; } @GetMapping("/intern/warehouse/slots/") public String accountingWarehouseSlots() { return "intern/warehouse/slots/index"; } }