Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. <?php
  2. session_start();
  3.  
  4. define("USER_SESSION_ID", "userId");
  5.  
  6. require "model/User.php";
  7. require "model/Product.php";
  8. require "Router.php";
  9. require "DatabaseConnector.php";
  10. require "AuthService.php";
  11. require "NotificationsService.php";
  12.  
  13. $user = DatabaseConnector::getAllUsers()[0];
  14. $user->setId(null);
  15. $user->setEmail("test@test.pl");
  16. DatabaseConnector::saveUser($user);
  17.  
  18. Router::get("/", function () {
  19. renderView("home");
  20. });
  21.  
  22. Router::get("/contact", function () {
  23. renderView("contact");
  24. });
  25.  
  26. Router::get("/products", function () {
  27. $products = DatabaseConnector::getAllProducts();
  28. renderView("products/index", get_defined_vars());
  29. });
  30.  
  31. Router::get("/products/new", function () {
  32. $product = new Product();
  33. renderView("products/new", get_defined_vars());
  34. });
  35.  
  36. Router::post("/products", function () {
  37. $product = Product::create(null, $_POST["name"], $_POST["description"], $_POST["count"], $_POST["price"]);
  38. $errors = $product->validate();
  39. if(empty($errors)) {
  40. DatabaseConnector::saveProduct($product);
  41. NotificationsService::success("Produkt został pomyślnie zapisany");
  42. redirectTo("/products");
  43. } else {
  44. renderView("products/new", get_defined_vars());
  45. }
  46. });
  47.  
  48. Router::put("/products/{:id}", function ($id) {
  49. $product = Product::create($id, $_POST["name"], $_POST["description"], $_POST["count"], $_POST["price"]);
  50. $errors = $product->validate();
  51. if(empty($errors)) {
  52. DatabaseConnector::saveProduct($product);
  53. NotificationsService::success("Produkt został pomyślnie zapisany");
  54. redirectTo("/products");
  55. } else {
  56. renderView("products/".$id."/edit", get_defined_vars());
  57. }
  58. });
  59.  
  60. Router::get("/products/{:id}", function ($id) {
  61. $product = DatabaseConnector::getProduct($id);
  62. renderView("products/show", get_defined_vars());
  63. });
  64.  
  65. Router::get("/products/{:id}/edit", function ($id) {
  66. $product = DatabaseConnector::getProduct($id);
  67. renderView("products/edit", get_defined_vars());
  68. });
  69.  
  70. Router::get("/login", function () {
  71. renderView("auth/login");
  72. });
  73.  
  74. Router::post("/login", function () {
  75. $email = $_POST['email'];
  76. $password = $_POST['password'];
  77. $authenticatedUser = null;
  78. foreach(DatabaseConnector::getAllUsers() as $user) {
  79. if($user->getEmail() == $email && $user->getPassword() == $password) {
  80. $authenticatedUser = $user;
  81. }
  82. }
  83. if(is_null($authenticatedUser)) {
  84. $errors = ["email" => "Email niepoprwany", "password" => "Hasło niepoprwane"];
  85. renderView("auth/login", get_defined_vars());
  86. } else {
  87. $_SESSION[USER_SESSION_ID] = $authenticatedUser->getId();
  88. redirectTo("/");
  89. }
  90. });
  91.  
  92. Router::delete("/logout", function () {
  93. unset($_SESSION[USER_SESSION_ID]);
  94. redirectTo("/");
  95. });
  96.  
  97. Router::execute($_SERVER);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement