diff options
Diffstat (limited to 'modules/rest')
-rw-r--r-- | modules/rest/controllers/rest.php | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/modules/rest/controllers/rest.php b/modules/rest/controllers/rest.php index 29334cea..38f28171 100644 --- a/modules/rest/controllers/rest.php +++ b/modules/rest/controllers/rest.php @@ -41,12 +41,13 @@ class Rest_Controller extends Controller { public function __call($function, $args) { $input = Input::instance(); $request = new stdClass(); + switch ($method = strtolower($input->server("REQUEST_METHOD"))) { case "get": $request->params = (object) $input->get(); break; - case "post": + default: $request->params = (object) $input->post(); if (isset($_FILES["file"])) { $request->file = upload::save("file"); @@ -54,8 +55,20 @@ class Rest_Controller extends Controller { break; } + if (isset($request->params->entity)) { + $request->params->entity = json_decode($request->params->entity); + } + if (isset($request->params->members)) { + $request->params->members = json_decode($request->params->members); + } + $request->method = strtolower($input->server("HTTP_X_GALLERY_REQUEST_METHOD", $method)); $request->access_key = $input->server("HTTP_X_GALLERY_REQUEST_KEY"); + + if (empty($request->access_key) && !empty($request->params->access_key)) { + $request->access_key = $request->params->access_key; + } + $request->url = url::abs_current(true); rest::set_active_user($request->access_key); |