Skip to content
Snippets Groups Projects
Commit 55bdba90 authored by Adylan Roaffa's avatar Adylan Roaffa
Browse files

fixed router

parent 166c02d9
No related merge requests found
<?php
$browsePage = function(){
echo "Implement plz";
require_once __ROOT__.'/static/html/index.html';
}
?>
\ No newline at end of file
<?php
$homepage = function() {
include __ROOT__.'/static/html/index.html';
}
?>
\ No newline at end of file
...@@ -3,18 +3,18 @@ ...@@ -3,18 +3,18 @@
require_once __ROOT__.'/util/Routing/Router.php'; 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/history.php';
require_once __ROOT__.'/app/profile.php'; require_once __ROOT__.'/app/profile.php';
$router = new Router(); $router = new Router();
$router->add("/", "GET", $browsePage); $router->add("/", "GET", $homepage);
$router->add("/profile/", "GET", $historyPage); $router->add("/profile/", "GET", $historyPage);
$router->add("/history/", "GET", $profilePage); $router->add("/history/", "GET", $profilePage);
$uri = $_SERVER["REQUEST_URI"]; $uri = $_SERVER["PATH_INFO"];
$method = $_SERVER["REQUEST_METHOD"]; $method = $_SERVER["REQUEST_METHOD"];
$router->route($uri, $method); $router->route($uri, $method);
......
<?php <?php
require_once __ROOT__.'/app/user/UserDb.php'; require_once __ROOT__.'/app/user/UserDb.php';
require_once __ROOT__.'/app/user/User.php';
require_once __ROOT__.'/util/Routing/Response.php'; require_once __ROOT__.'/util/Routing/Response.php';
class UserUsecase { class UserUsecase {
...@@ -39,19 +40,24 @@ ...@@ -39,19 +40,24 @@
function editProfile(Request $request){ function editProfile(Request $request){
$user_id = (int)$request->params["user_id"]; $user_id = (int)$request->params["user_id"];
$user = $this->userDb->getUserById($user_id)[0]; $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){ 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 { } else {
writeResponse(500, "Failed edit user profile"); writeResponse(400, "User not exist");
} }
} }
......
<?php <?php
function addUserRoutes($router, $userUsecase){ function addUserRoutes($router, $userUsecase){
// User Routes
$router->add("/user/", "POST", array($userUsecase,'registerUser')); $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/", "DELETE", array($userUsecase,'removeUser'));
$router->add("/user/:user_id/", "GET", array($userUsecase,'getProfile')); $router->add("/user/:user_id/", "GET", array($userUsecase,'getProfile'));
$router->add("/user/:user_id/", "PUT", array($userUsecase,'editProfile')); $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; return $router;
} }
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
// TODO: Add Order Routes // TODO: Add Order Routes
$errorCallback = function(){ $errorCallback = function(){
echo "500"; writeResponse(404, "Page not found.");
}; };
$uri = $_SERVER['PATH_INFO']; $uri = $_SERVER['PATH_INFO'];
......
...@@ -3,11 +3,13 @@ ...@@ -3,11 +3,13 @@
public $params = array(); public $params = array();
public $payload = array(); public $payload = array();
public $header = 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->params = $params;
$this->payload = $payload; $this->payload = $payload;
$this->header = $header; $this->header = $header;
$this->queries = $queries;
} }
} }
......
...@@ -12,22 +12,21 @@ ...@@ -12,22 +12,21 @@
private function __makeParamPattern($url){ private function __makeParamPattern($url){
$url_components = explode("/", $url); $url_components = explode("/", $url);
$paramPattern = "^\/"; $paramPattern = "^";
foreach($url_components as $url_component){ foreach($url_components as $url_component){
if ($url_component != ""){ if ($url_component != ""){
if (preg_match('(:.*)',$url_component)){ if (preg_match('(:.*)',$url_component)){
preg_match('(:.*)',$url_component, $paramName); preg_match('(:.*)',$url_component, $paramName);
$param = substr($paramName[0],1); $param = substr($paramName[0],1);
array_push($this->paramKeys, $param); array_push($this->paramKeys, $param);
$paramPattern .= "(?P"."<$param>"."\d+)\/"; $paramPattern .= "\/(?P"."<$param>"."\d+)";
} }
else { else {
$paramPattern .= "(".$url_component.")\/"; $paramPattern .= "\/(".$url_component.")";
} }
} }
} }
$paramPattern.= "$"; $paramPattern.= "\/$";
return $paramPattern; return $paramPattern;
} }
...@@ -49,7 +48,6 @@ ...@@ -49,7 +48,6 @@
return $request_params; return $request_params;
} }
private function __getRouteFromPattern($url, $method){ private function __getRouteFromPattern($url, $method){
foreach ($this->routes as $key=>$value){ foreach ($this->routes as $key=>$value){
if (preg_match("($key)", $url) && array_key_exists($method, $value)){ if (preg_match("($key)", $url) && array_key_exists($method, $value)){
...@@ -76,8 +74,9 @@ ...@@ -76,8 +74,9 @@
parse_str(file_get_contents("php://input"), $payload); parse_str(file_get_contents("php://input"), $payload);
// get header // get header
$headers = getallheaders(); $headers = getallheaders();
$queries = $_GET;
$request = new Request($params, $payload, $headers);
$request = new Request($params, $payload, $headers, $queries);
if ($route["middleware"]){ if ($route["middleware"]){
$route["middleware"]->run($route["callback"], $request); $route["middleware"]->run($route["callback"], $request);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment