dc-rest/inc/class.rest.query.php

122 lines
2.7 KiB
PHP
Raw Normal View History

2017-04-28 19:34:27 +02:00
<?php
class RestQuery{
public $response_code;
public $response_message; //array
private $queryObj;
2017-05-01 00:51:42 +02:00
public function __construct($httpMethod,$args,$user){
error_log($httpMethod." ".$args);
2017-04-28 19:34:27 +02:00
//définir la methode API (pas HTML) appelée
switch($httpMethod){
2017-05-01 00:51:42 +02:00
case "GET":
if($args == 'blogs'){
$queryObj = new RestQueryGetBlogs($user);
break;
}elseif($args == 'specs'){
$queryObj = new RestQueryGetSpecs($user);
break;
2017-04-30 17:38:07 +02:00
}
2017-04-28 19:34:27 +02:00
break;
2017-05-01 00:51:42 +02:00
case "POST":
2017-04-28 19:34:27 +02:00
break;
2017-05-01 00:51:42 +02:00
case "PUT":
2017-04-28 19:34:27 +02:00
break;
2017-05-01 00:51:42 +02:00
case "PATCH":
2017-04-28 19:34:27 +02:00
break;
2017-05-01 00:51:42 +02:00
case "DELETE":
2017-04-28 19:34:27 +02:00
break;
default:
$this->response_code = RestQuery::get_full_code_header(400);
$this->response_message = array(
2017-05-01 00:51:42 +02:00
"error" => "Unrecoknized method",
"code" => 400
2017-04-28 19:34:27 +02:00
);
2017-05-01 00:51:42 +02:00
return;
2017-04-28 19:34:27 +02:00
break;
}
2017-05-01 00:51:42 +02:00
$this->response_code = $queryObj->response_code;
$this->response_message = $queryObj->response_message;
2017-04-28 19:34:27 +02:00
}
2017-05-01 00:51:42 +02:00
public function get_full_code_header($code){
2017-04-28 19:34:27 +02:00
static $codes = array(
100 =>"Continue",
101 =>"Switching Protocols",
102 =>"Processing",
200 =>"OK",
201 =>"Created",
202 =>"Accepted",
203 =>"Non-Authoritative Information",
204 =>"No Content",
205 =>"Reset Content",
206 =>"Partial Content",
207 =>"Multi-Status",
210 =>"Content Different",
226 =>"IM Used",
300 =>"Multiple Choices",
301 =>"Moved Permanently",
302 =>"Moved Temporarily",
303 =>"See Other",
304 =>"Not Modified",
305 =>"Use Proxy",
306 =>"(aucun)",
307 =>"Temporary Redirect",
308 =>"Permanent Redirect",
310 =>"Too many Redirects",
400 =>"Bad Request",
401 =>"Unauthorized",
402 =>"Payment Required",
403 =>"Forbidden",
404 =>"Not Found",
405 =>"Method Not Allowed",
406 =>"Not Acceptable",
407 =>"Proxy Authentication Required",
408 =>"Request Time-out",
409 =>"Conflict",
410 =>"Gone",
411 =>"Length Required",
412 =>"Precondition Failed",
413 =>"Request Entity Too Large",
414 =>"Request-URI Too Long",
415 =>"Unsupported Media Type",
416 =>"Requested range unsatisfiable",
417 =>"Expectation failed",
418 =>"Im a teapot",
421 =>"Bad mapping / Misdirected Request",
422 =>"Unprocessable entity",
423 =>"Locked",
424 =>"Method failure",
425 =>"Unordered Collection",
426 =>"Upgrade Required",
428 =>"Precondition Required",
429 =>"Too Many Requests",
431 =>"Request Header Fields Too Large",
449 =>"Retry With",
450 =>"Blocked by Windows Parental Controls",
451 =>"Unavailable For Legal Reasons",
456 =>"Unrecoverable Error"
);
if(isset($codes[$code])){
return "HTTP/1.0 ".$code." ".$codes[$code];
}else{
return "HTTP/1.0 ".$code." Something wrong happened";
}
}
}
//etc...