From 954195b57fc7493f004755dc59109f331c4a02c7 Mon Sep 17 00:00:00 2001 From: Gnieark Date: Mon, 1 May 2017 22:05:03 +0200 Subject: [PATCH] Add a factory function --- _public.php | 52 +++++++++++++++++++++++++++++- inc/class.rest.query.get.blogs.php | 5 +-- inc/class.rest.query.get.specs.php | 6 +--- inc/class.rest.query.php | 50 ---------------------------- 4 files changed, 53 insertions(+), 60 deletions(-) diff --git a/_public.php b/_public.php index 30c5edf..7c8c9a8 100644 --- a/_public.php +++ b/_public.php @@ -4,6 +4,56 @@ if (!defined('DC_RC_PATH')) { return; } $core->url->register('rest','rest','^rest(?:/(.*))?$',array('rest','getResponse')); class rest extends dcUrlHandlers { + + /** + * Create the "good" RestQuery instance + * Input: $httpMethod: String (POST/GET/PATCH etc...) + * $args Url arguments + * $user dcAuth object + * $body Body of the input query. String + * Output: object RestQuery + */ + private function restFactoryQuery($httpMethod,$args,$user,$body){ + + //définir la methode API (pas HTML) appelée + switch($httpMethod){ + case "GET": + if($args == 'blogs'){ + $queryObj = new RestQueryGetBlogs($user); + break; + }elseif($args == 'specs'){ + $queryObj = new RestQueryGetSpecs($user); + break; + } + break; + case "POST": + + break; + case "PUT": + + break; + + case "PATCH": + + break; + + case "DELETE": + + break; + default: + $this->response_code = RestQuery::get_full_code_header(400); + $this->response_message = array( + "error" => "Unrecoknized method", + "code" => 400 + ); + return; + break; + } + + return $queryObj; + + } + public static function getResponse($args) { global $core; @@ -44,7 +94,7 @@ class rest extends dcUrlHandlers } } - $r = new RestQuery($_SERVER['REQUEST_METHOD'],$args,$user); + $r = rest::restFactoryQuery($_SERVER['REQUEST_METHOD'],$args,$user,file_get_contents('php://input')); header($r->response_code); echo json_encode($r->response_message); diff --git a/inc/class.rest.query.get.blogs.php b/inc/class.rest.query.get.blogs.php index eca432b..28db69a 100644 --- a/inc/class.rest.query.get.blogs.php +++ b/inc/class.rest.query.get.blogs.php @@ -1,10 +1,7 @@ response_code = 200; diff --git a/inc/class.rest.query.php b/inc/class.rest.query.php index 47ba147..8594826 100644 --- a/inc/class.rest.query.php +++ b/inc/class.rest.query.php @@ -3,49 +3,6 @@ class RestQuery{ public $response_code; public $response_message; //array - private $queryObj; - - public function __construct($httpMethod,$args,$user){ - error_log($httpMethod." ".$args); - //définir la methode API (pas HTML) appelée - switch($httpMethod){ - case "GET": - if($args == 'blogs'){ - $queryObj = new RestQueryGetBlogs($user); - break; - }elseif($args == 'specs'){ - $queryObj = new RestQueryGetSpecs($user); - break; - } - break; - case "POST": - - break; - case "PUT": - - break; - - case "PATCH": - - break; - - case "DELETE": - - break; - default: - $this->response_code = RestQuery::get_full_code_header(400); - $this->response_message = array( - "error" => "Unrecoknized method", - "code" => 400 - ); - return; - break; - } - - $this->response_code = $queryObj->response_code; - $this->response_message = $queryObj->response_message; - - } public function get_full_code_header($code){ static $codes = array( @@ -111,12 +68,5 @@ class RestQuery{ }else{ return "HTTP/1.0 ".$code." Something wrong happened"; } - - - } - - } - -//etc... \ No newline at end of file