escape spaces in folders
[ouya-imagestore.git] / src / imagestore / Controller / Api.php
index 42f045aa175e6ba4ba573390959f421de16c78eb..fe0d2d93a53ff2ce69a727d18e99a176b685a989 100644 (file)
@@ -1,19 +1,25 @@
 <?php
 namespace imagestore;
 
-class Controller_Api
+class Controller_Api extends Controller_Base
 {
     public function handle($uri)
     {
         if (substr($uri, 0, 3) != 'v1/') {
-            $this->error(404, 'Only API v1 supported');
+            return $this->error(404, 'Only API v1 supported');
         }
 
-        $actionName = substr($uri, 3);
+        $rest = substr($uri, 3);
+        $parts = explode('/', $rest);
+        $actionName = $parts[0];
         $class = 'imagestore\Controller_Api_' . ucfirst($actionName);
 
+        if (!class_exists($class)) {
+            return $this->error(404, 'API method not supported');
+        }
+
         $action = new $class();
-        $action->handle();
+        $action->handle(substr($rest, strlen($parts[0]) + 1));
     }
 }
 ?>