From ff72623036adb71d6de6c22d5dd77812ded10ef0 Mon Sep 17 00:00:00 2001 From: Adylan Roaffa <adylanrff@gmail.com> Date: Thu, 18 Oct 2018 11:07:02 +0700 Subject: [PATCH] restructured code --- {server/app => app/controller}/book/Book.php | 0 .../app => app/controller}/book/BookDb.php | 0 .../controller}/book/BookUsecase.php | 2 +- .../app => app/controller}/book/Review.php | 0 .../app => app/controller}/book/routes.php | 0 .../app => app/controller}/order/Order.php | 0 .../app => app/controller}/order/OrderDb.php | 0 .../controller}/order/OrderUsecase.php | 2 +- .../app => app/controller}/order/routes.php | 0 .../controller}/user/AuthMiddleware.php | 0 {server/app => app/controller}/user/User.php | 0 .../app => app/controller}/user/UserDb.php | 2 +- .../controller}/user/UserUsecase.php | 8 +- .../app => app/controller}/user/routes.php | 7 +- {client/app => app/view}/history.php | 0 app/view/homepage.php | 9 ++ {client/app => app/view}/profile.php | 0 {client => app/view}/static/html/index.html | 0 client/app/homepage.php | 7 -- client/public/index.php | 21 ---- client/util/Routing/Request.php | 14 --- client/util/Routing/Router.php | 94 ------------------ {server/config => config}/devel.php | 3 +- {server/db => db}/db schema.png | Bin {server/db => db}/tayo_book_store.sql | 0 {server/db => db}/tayo_book_store_dummy.sql | 0 {server/public => public}/index.php | 21 ++-- server/util/Routing/IMiddleware.php | 9 -- {server/util => util}/Database.php | 0 {client/util => util}/Routing/IMiddleware.php | 0 {server/util => util}/Routing/Request.php | 0 {server/util => util}/Routing/Response.php | 0 {server/util => util}/Routing/Router.php | 0 {server/util => util}/autoloader.php | 0 34 files changed, 31 insertions(+), 168 deletions(-) rename {server/app => app/controller}/book/Book.php (100%) rename {server/app => app/controller}/book/BookDb.php (100%) rename {server/app => app/controller}/book/BookUsecase.php (73%) rename {server/app => app/controller}/book/Review.php (100%) rename {server/app => app/controller}/book/routes.php (100%) rename {server/app => app/controller}/order/Order.php (100%) rename {server/app => app/controller}/order/OrderDb.php (100%) rename {server/app => app/controller}/order/OrderUsecase.php (72%) rename {server/app => app/controller}/order/routes.php (100%) rename {server/app => app/controller}/user/AuthMiddleware.php (100%) rename {server/app => app/controller}/user/User.php (100%) rename {server/app => app/controller}/user/UserDb.php (97%) rename {server/app => app/controller}/user/UserUsecase.php (93%) rename {server/app => app/controller}/user/routes.php (73%) rename {client/app => app/view}/history.php (100%) create mode 100644 app/view/homepage.php rename {client/app => app/view}/profile.php (100%) rename {client => app/view}/static/html/index.html (100%) delete mode 100644 client/app/homepage.php delete mode 100644 client/public/index.php delete mode 100644 client/util/Routing/Request.php delete mode 100644 client/util/Routing/Router.php rename {server/config => config}/devel.php (80%) rename {server/db => db}/db schema.png (100%) rename {server/db => db}/tayo_book_store.sql (100%) rename {server/db => db}/tayo_book_store_dummy.sql (100%) rename {server/public => public}/index.php (62%) delete mode 100644 server/util/Routing/IMiddleware.php rename {server/util => util}/Database.php (100%) rename {client/util => util}/Routing/IMiddleware.php (100%) rename {server/util => util}/Routing/Request.php (100%) rename {server/util => util}/Routing/Response.php (100%) rename {server/util => util}/Routing/Router.php (100%) rename {server/util => util}/autoloader.php (100%) diff --git a/server/app/book/Book.php b/app/controller/book/Book.php similarity index 100% rename from server/app/book/Book.php rename to app/controller/book/Book.php diff --git a/server/app/book/BookDb.php b/app/controller/book/BookDb.php similarity index 100% rename from server/app/book/BookDb.php rename to app/controller/book/BookDb.php diff --git a/server/app/book/BookUsecase.php b/app/controller/book/BookUsecase.php similarity index 73% rename from server/app/book/BookUsecase.php rename to app/controller/book/BookUsecase.php index 316b66e..d635e20 100644 --- a/server/app/book/BookUsecase.php +++ b/app/controller/book/BookUsecase.php @@ -1,5 +1,5 @@ <?php - require_once __ROOT__.'/app/book/BookDb.php'; + require_once __ROOT__.'/app/controller/book/BookDb.php'; class BookUsecase { private $bookDb; diff --git a/server/app/book/Review.php b/app/controller/book/Review.php similarity index 100% rename from server/app/book/Review.php rename to app/controller/book/Review.php diff --git a/server/app/book/routes.php b/app/controller/book/routes.php similarity index 100% rename from server/app/book/routes.php rename to app/controller/book/routes.php diff --git a/server/app/order/Order.php b/app/controller/order/Order.php similarity index 100% rename from server/app/order/Order.php rename to app/controller/order/Order.php diff --git a/server/app/order/OrderDb.php b/app/controller/order/OrderDb.php similarity index 100% rename from server/app/order/OrderDb.php rename to app/controller/order/OrderDb.php diff --git a/server/app/order/OrderUsecase.php b/app/controller/order/OrderUsecase.php similarity index 72% rename from server/app/order/OrderUsecase.php rename to app/controller/order/OrderUsecase.php index b5fb1b0..dcee983 100644 --- a/server/app/order/OrderUsecase.php +++ b/app/controller/order/OrderUsecase.php @@ -1,5 +1,5 @@ <?php - require_once __ROOT__.'/app/order/OrderDb.php'; + require_once __ROOT__.'/app/controller/order/OrderDb.php'; class OrderUsecase { private $orderDb; diff --git a/server/app/order/routes.php b/app/controller/order/routes.php similarity index 100% rename from server/app/order/routes.php rename to app/controller/order/routes.php diff --git a/server/app/user/AuthMiddleware.php b/app/controller/user/AuthMiddleware.php similarity index 100% rename from server/app/user/AuthMiddleware.php rename to app/controller/user/AuthMiddleware.php diff --git a/server/app/user/User.php b/app/controller/user/User.php similarity index 100% rename from server/app/user/User.php rename to app/controller/user/User.php diff --git a/server/app/user/UserDb.php b/app/controller/user/UserDb.php similarity index 97% rename from server/app/user/UserDb.php rename to app/controller/user/UserDb.php index a1c678c..865372d 100644 --- a/server/app/user/UserDb.php +++ b/app/controller/user/UserDb.php @@ -1,6 +1,6 @@ <?php require_once __ROOT__."/util/Database.php"; - require_once __ROOT__."/app/user/User.php"; + require_once __ROOT__."/app/controller/user/User.php"; class UserDb extends Database{ function __construct(PDO $conn){ diff --git a/server/app/user/UserUsecase.php b/app/controller/user/UserUsecase.php similarity index 93% rename from server/app/user/UserUsecase.php rename to app/controller/user/UserUsecase.php index a8952ec..84b14aa 100644 --- a/server/app/user/UserUsecase.php +++ b/app/controller/user/UserUsecase.php @@ -1,6 +1,6 @@ <?php - require_once __ROOT__.'/app/user/UserDb.php'; - require_once __ROOT__.'/app/user/User.php'; + require_once __ROOT__.'/app/controller/user/UserDb.php'; + require_once __ROOT__.'/app/controller/user/User.php'; require_once __ROOT__.'/util/Routing/Response.php'; class UserUsecase { @@ -70,7 +70,9 @@ } } - + function authenticateUser(Request $request){ + + } } ?> \ No newline at end of file diff --git a/server/app/user/routes.php b/app/controller/user/routes.php similarity index 73% rename from server/app/user/routes.php rename to app/controller/user/routes.php index b2a81b1..f94fd4e 100644 --- a/server/app/user/routes.php +++ b/app/controller/user/routes.php @@ -1,14 +1,11 @@ <?php - function addUserRoutes($router, $userUsecase){ $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')); + // Auth + $router->add("/auth/login/", "POST", array($userUsecase,'authenticateUser')); return $router; } diff --git a/client/app/history.php b/app/view/history.php similarity index 100% rename from client/app/history.php rename to app/view/history.php diff --git a/app/view/homepage.php b/app/view/homepage.php new file mode 100644 index 0000000..51aa1b9 --- /dev/null +++ b/app/view/homepage.php @@ -0,0 +1,9 @@ +<?php + + $homepage = function() { + // include __ROOT__.'/static/html/index.html'; + $result = json_decode(http_get('localhost:4000/user/2/')); + echo($result); + } + +?> \ No newline at end of file diff --git a/client/app/profile.php b/app/view/profile.php similarity index 100% rename from client/app/profile.php rename to app/view/profile.php diff --git a/client/static/html/index.html b/app/view/static/html/index.html similarity index 100% rename from client/static/html/index.html rename to app/view/static/html/index.html diff --git a/client/app/homepage.php b/client/app/homepage.php deleted file mode 100644 index 5fac71f..0000000 --- a/client/app/homepage.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php - - $homepage = function() { - include __ROOT__.'/static/html/index.html'; - } - -?> \ No newline at end of file diff --git a/client/public/index.php b/client/public/index.php deleted file mode 100644 index 9f52800..0000000 --- a/client/public/index.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php - define('__ROOT__', dirname(dirname(__FILE__))); - - - require_once __ROOT__.'/util/Routing/Router.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", $homepage); - $router->add("/profile/", "GET", $historyPage); - $router->add("/history/", "GET", $profilePage); - - $uri = $_SERVER["PATH_INFO"]; - $method = $_SERVER["REQUEST_METHOD"]; - - $router->route($uri, $method); -?> \ No newline at end of file diff --git a/client/util/Routing/Request.php b/client/util/Routing/Request.php deleted file mode 100644 index ba6d58f..0000000 --- a/client/util/Routing/Request.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - class Request { - public $params = array(); - public $payload = array(); - public $header = array(); - - function __construct(array $params, array $payload, $header){ - $this->params = $params; - $this->payload = $payload; - $this->header = $header; - } - } - -?> \ No newline at end of file diff --git a/client/util/Routing/Router.php b/client/util/Routing/Router.php deleted file mode 100644 index b92e8fb..0000000 --- a/client/util/Routing/Router.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - require_once 'Request.php'; - require_once 'IMiddleware.php'; - - class Router { - // Array of routes and its callback - private $routes = array(); - // Array of patterns for params matching - private $paramPatterns = array(); - // Array of param keys to be searched - private $paramKeys = array(); - - private function __makeParamPattern($url){ - $url_components = explode("/", $url); - $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+)\/"; - } - else { - $paramPattern .= "(".$url_component.")\/"; - } - } - } - $paramPattern.= "$"; - - return $paramPattern; - } - - private function __parseParams($url){ - $request_params = array(); - $param_matches = array(); - - foreach($this->paramPatterns as $paramPattern){ - if (preg_match('('.$paramPattern.')', $url, $matches, PREG_OFFSET_CAPTURE)){ - $param_matches = $matches; - } - } - - foreach($this->paramKeys as $param){ - if (array_key_exists($param, $param_matches)){ - $request_params[$param] = $param_matches[$param][0]; - } - } - - return $request_params; - } - - private function __getRouteFromPattern($url, $method){ - foreach ($this->routes as $key=>$value){ - if (preg_match("($key)", $url) && array_key_exists($method, $value)){ - return $value[$method]; - } - } - - return null; - } - - function add(string $url, string $method, $callback, IMiddleware $middleware = null) { - $urlPattern = $this->__makeParamPattern($url); - $this->routes[$urlPattern][$method] = array("callback"=>$callback, "middleware"=>$middleware); - array_push($this->paramPatterns, $urlPattern); - } - - function route(string $requestUrl, string $method, $errorCallback = null) { - $route = $this->__getRouteFromPattern($requestUrl, $method); - - if ($route!= null) { - // get params - $params = $this->__parseParams($requestUrl); - // get payload - parse_str(file_get_contents("php://input"), $payload); - // get header - $headers = getallheaders(); - - $request = new Request($params, $payload, $headers); - - if ($route["middleware"]){ - $route["middleware"]->run($route["callback"], $request); - } else { - $route["callback"]($request); - } - } else { - if ($errorCallback){ - $errorCallback(); - } - } - } - } -?> \ No newline at end of file diff --git a/server/config/devel.php b/config/devel.php similarity index 80% rename from server/config/devel.php rename to config/devel.php index 1c435c3..56fede7 100644 --- a/server/config/devel.php +++ b/config/devel.php @@ -5,6 +5,7 @@ "user" => "root", "password" => "rahasiailahi", "db_name" => "tayo_book_store" - ) + ), + "base_url" => "localhost:4000/" ) ?> \ No newline at end of file diff --git a/server/db/db schema.png b/db/db schema.png similarity index 100% rename from server/db/db schema.png rename to db/db schema.png diff --git a/server/db/tayo_book_store.sql b/db/tayo_book_store.sql similarity index 100% rename from server/db/tayo_book_store.sql rename to db/tayo_book_store.sql diff --git a/server/db/tayo_book_store_dummy.sql b/db/tayo_book_store_dummy.sql similarity index 100% rename from server/db/tayo_book_store_dummy.sql rename to db/tayo_book_store_dummy.sql diff --git a/server/public/index.php b/public/index.php similarity index 62% rename from server/public/index.php rename to public/index.php index 73d339b..803ebeb 100644 --- a/server/public/index.php +++ b/public/index.php @@ -5,24 +5,23 @@ require_once __ROOT__.'/util/Routing/Request.php'; require_once __ROOT__.'/util/Database.php'; // book - require_once __ROOT__.'/app/book/BookUsecase.php'; - require_once __ROOT__.'/app/book/BookDb.php'; + require_once __ROOT__.'/app/controller/book/BookUsecase.php'; + require_once __ROOT__.'/app/controller/book/BookDb.php'; // order - require_once __ROOT__.'/app/order/OrderUsecase.php'; - require_once __ROOT__.'/app/order/OrderDb.php'; + require_once __ROOT__.'/app/controller/order/OrderUsecase.php'; + require_once __ROOT__.'/app/controller/order/OrderDb.php'; // user - require_once __ROOT__.'/app/user/UserUsecase.php'; - require_once __ROOT__.'/app/user/UserDb.php'; - + require_once __ROOT__.'/app/controller/user/UserUsecase.php'; + require_once __ROOT__.'/app/controller/user/UserDb.php'; // routes - require_once __ROOT__.'/app/book/routes.php'; - require_once __ROOT__.'/app/order/routes.php'; - require_once __ROOT__.'/app/user/routes.php'; + require_once __ROOT__.'/app/controller/book/routes.php'; + require_once __ROOT__.'/app/controller/order/routes.php'; + require_once __ROOT__.'/app/controller/user/routes.php'; $conn = Database::createDBConnection($APP_CONFIG["db"]["host"], $APP_CONFIG["db"]["user"], $APP_CONFIG["db"]["password"], $APP_CONFIG["db"]["db_name"]); - + $userDb = new UserDb($conn); $userUsecase = new UserUsecase($userDb); diff --git a/server/util/Routing/IMiddleware.php b/server/util/Routing/IMiddleware.php deleted file mode 100644 index fddf20b..0000000 --- a/server/util/Routing/IMiddleware.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - require_once 'Request.php'; - - interface IMiddleware { - function run($next, Request $nextRequest); - } - - -?> \ No newline at end of file diff --git a/server/util/Database.php b/util/Database.php similarity index 100% rename from server/util/Database.php rename to util/Database.php diff --git a/client/util/Routing/IMiddleware.php b/util/Routing/IMiddleware.php similarity index 100% rename from client/util/Routing/IMiddleware.php rename to util/Routing/IMiddleware.php diff --git a/server/util/Routing/Request.php b/util/Routing/Request.php similarity index 100% rename from server/util/Routing/Request.php rename to util/Routing/Request.php diff --git a/server/util/Routing/Response.php b/util/Routing/Response.php similarity index 100% rename from server/util/Routing/Response.php rename to util/Routing/Response.php diff --git a/server/util/Routing/Router.php b/util/Routing/Router.php similarity index 100% rename from server/util/Routing/Router.php rename to util/Routing/Router.php diff --git a/server/util/autoloader.php b/util/autoloader.php similarity index 100% rename from server/util/autoloader.php rename to util/autoloader.php -- GitLab