From 55bdba90fc8f911fb924c8e7160f3e84e2be0d6b Mon Sep 17 00:00:00 2001 From: Adylan Roaffa <adylanrff@gmail.com> Date: Thu, 18 Oct 2018 07:13:47 +0700 Subject: [PATCH] fixed router --- client/app/browse.php | 8 -------- client/app/homepage.php | 7 +++++++ client/public/.htaccess | 0 client/public/index.php | 6 +++--- server/app/user/UserUsecase.php | 26 ++++++++++++++++---------- server/app/user/routes.php | 9 ++++----- server/public/index.php | 2 +- server/util/Routing/Request.php | 4 +++- server/util/Routing/Router.php | 15 +++++++-------- 9 files changed, 41 insertions(+), 36 deletions(-) delete mode 100644 client/app/browse.php create mode 100644 client/app/homepage.php delete mode 100644 client/public/.htaccess diff --git a/client/app/browse.php b/client/app/browse.php deleted file mode 100644 index 458b1a6..0000000 --- a/client/app/browse.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php - - $browsePage = function(){ - echo "Implement plz"; - require_once __ROOT__.'/static/html/index.html'; - } - -?> \ No newline at end of file diff --git a/client/app/homepage.php b/client/app/homepage.php new file mode 100644 index 0000000..5fac71f --- /dev/null +++ b/client/app/homepage.php @@ -0,0 +1,7 @@ +<?php + + $homepage = function() { + include __ROOT__.'/static/html/index.html'; + } + +?> \ No newline at end of file diff --git a/client/public/.htaccess b/client/public/.htaccess deleted file mode 100644 index e69de29..0000000 diff --git a/client/public/index.php b/client/public/index.php index 0b4bd9c..9f52800 100644 --- a/client/public/index.php +++ b/client/public/index.php @@ -3,18 +3,18 @@ require_once __ROOT__.'/util/Routing/Router.php'; - require_once __ROOT__.'/app/browse.php'; + require_once __ROOT__.'/app/homepage.php'; require_once __ROOT__.'/app/history.php'; require_once __ROOT__.'/app/profile.php'; $router = new Router(); - $router->add("/", "GET", $browsePage); + $router->add("/", "GET", $homepage); $router->add("/profile/", "GET", $historyPage); $router->add("/history/", "GET", $profilePage); - $uri = $_SERVER["REQUEST_URI"]; + $uri = $_SERVER["PATH_INFO"]; $method = $_SERVER["REQUEST_METHOD"]; $router->route($uri, $method); diff --git a/server/app/user/UserUsecase.php b/server/app/user/UserUsecase.php index b74d3c0..a8952ec 100644 --- a/server/app/user/UserUsecase.php +++ b/server/app/user/UserUsecase.php @@ -1,5 +1,6 @@ <?php require_once __ROOT__.'/app/user/UserDb.php'; + require_once __ROOT__.'/app/user/User.php'; require_once __ROOT__.'/util/Routing/Response.php'; class UserUsecase { @@ -39,19 +40,24 @@ function editProfile(Request $request){ $user_id = (int)$request->params["user_id"]; $user = $this->userDb->getUserById($user_id)[0]; - $user->username = array_key_exists("username",$request->payload) ? $request->payload["username"] : $user->username; - $user->fullname = array_key_exists("fullname",$request->payload) ? $request->payload["fullname"]: $user->fullname; - $user->email = array_key_exists("email",$request->payload) ? $request->payload["email"] : $user->email; - $user->address = array_key_exists("address",$request->payload) ? $request->payload["address"] : $user->address; - $newPass = array_key_exists("password",$request->payload) ? hash('sha256', $request->payload["username"]) : $user->getPassword(); - $user->setPassword($newPass); - - $user = $this->userDb->updateUser($user); if ($user){ - writeResponse(200, "Success edit user profile", $user); + $user->username = array_key_exists("username",$request->payload) ? $request->payload["username"] : $user->username; + $user->fullname = array_key_exists("fullname",$request->payload) ? $request->payload["fullname"]: $user->fullname; + $user->email = array_key_exists("email",$request->payload) ? $request->payload["email"] : $user->email; + $user->address = array_key_exists("address",$request->payload) ? $request->payload["address"] : $user->address; + + $newPass = array_key_exists("password",$request->payload) ? hash('sha256', $request->payload["username"]) : $user->getPassword(); + $user->setPassword($newPass); + + $user = $this->userDb->updateUser($user); + if ($user){ + writeResponse(200, "Success edit user profile", $user); + } else { + writeResponse(500, "Failed edit user profile"); + } } else { - writeResponse(500, "Failed edit user profile"); + writeResponse(400, "User not exist"); } } diff --git a/server/app/user/routes.php b/server/app/user/routes.php index 012884e..b2a81b1 100644 --- a/server/app/user/routes.php +++ b/server/app/user/routes.php @@ -1,15 +1,14 @@ <?php function addUserRoutes($router, $userUsecase){ - // User Routes $router->add("/user/", "POST", array($userUsecase,'registerUser')); + $router->add("/user/search/", "GET", function($request){ + $queries = $request->queries; + var_dump($queries); + }); $router->add("/user/:user_id/", "DELETE", array($userUsecase,'removeUser')); $router->add("/user/:user_id/", "GET", array($userUsecase,'getProfile')); $router->add("/user/:user_id/", "PUT", array($userUsecase,'editProfile')); - // $router->add("/book/:book_id/", "POST", $postCallbackExample); - // $router->add("/book/:book_id/user/:user_id/", "POST", $postCallbackExample); - // $router->add("/book/:book_id/", "POST", $postCallbackExample); - return $router; } diff --git a/server/public/index.php b/server/public/index.php index 0642b50..73d339b 100644 --- a/server/public/index.php +++ b/server/public/index.php @@ -32,7 +32,7 @@ // TODO: Add Order Routes $errorCallback = function(){ - echo "500"; + writeResponse(404, "Page not found."); }; $uri = $_SERVER['PATH_INFO']; diff --git a/server/util/Routing/Request.php b/server/util/Routing/Request.php index ba6d58f..2cdd4fc 100644 --- a/server/util/Routing/Request.php +++ b/server/util/Routing/Request.php @@ -3,11 +3,13 @@ public $params = array(); public $payload = array(); public $header = array(); + public $queries = array(); - function __construct(array $params, array $payload, $header){ + function __construct(array $params, array $payload, $header, $queries = null){ $this->params = $params; $this->payload = $payload; $this->header = $header; + $this->queries = $queries; } } diff --git a/server/util/Routing/Router.php b/server/util/Routing/Router.php index b92e8fb..09e5f8e 100644 --- a/server/util/Routing/Router.php +++ b/server/util/Routing/Router.php @@ -12,22 +12,21 @@ private function __makeParamPattern($url){ $url_components = explode("/", $url); - $paramPattern = "^\/"; + $paramPattern = "^"; foreach($url_components as $url_component){ if ($url_component != ""){ if (preg_match('(:.*)',$url_component)){ preg_match('(:.*)',$url_component, $paramName); $param = substr($paramName[0],1); array_push($this->paramKeys, $param); - $paramPattern .= "(?P"."<$param>"."\d+)\/"; + $paramPattern .= "\/(?P"."<$param>"."\d+)"; } else { - $paramPattern .= "(".$url_component.")\/"; + $paramPattern .= "\/(".$url_component.")"; } } } - $paramPattern.= "$"; - + $paramPattern.= "\/$"; return $paramPattern; } @@ -49,7 +48,6 @@ return $request_params; } - private function __getRouteFromPattern($url, $method){ foreach ($this->routes as $key=>$value){ if (preg_match("($key)", $url) && array_key_exists($method, $value)){ @@ -76,8 +74,9 @@ parse_str(file_get_contents("php://input"), $payload); // get header $headers = getallheaders(); - - $request = new Request($params, $payload, $headers); + $queries = $_GET; + + $request = new Request($params, $payload, $headers, $queries); if ($route["middleware"]){ $route["middleware"]->run($route["callback"], $request); -- GitLab