diff options
| author | Tim Almdal <tnalmdal@shaw.ca> | 2009-12-08 23:28:50 -0800 | 
|---|---|---|
| committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-12-08 23:28:50 -0800 | 
| commit | 3c30d595ae6a9a82e06f5427150d3667f00ef695 (patch) | |
| tree | 424b4e921573739ae6d569fea35cbb5beaf9e853 /modules | |
| parent | 9319f37c4f157c5b0787df9116889e4e9ea5df78 (diff) | |
Add the REST get handler for albums/photos/movies
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/gallery/helpers/gallery_rest.php | 29 | ||||
| -rw-r--r-- | modules/rest/tests/Rest_Controller_Test.php | 20 | 
2 files changed, 25 insertions, 24 deletions
diff --git a/modules/gallery/helpers/gallery_rest.php b/modules/gallery/helpers/gallery_rest.php index 367c2684..dba109fd 100644 --- a/modules/gallery/helpers/gallery_rest.php +++ b/modules/gallery/helpers/gallery_rest.php @@ -18,41 +18,40 @@   * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.   */  class gallery_rest_Core { -  static function get_album($request) { +  static function get($request) {      if (empty($request->path)) {        return rest::invalid_request();      } -    $album = ORM::factory("item") +    $item = ORM::factory("item")        ->where("relative_path_cache", $request->path) -      ->where("type", "album")        ->viewable()        ->find(); -    if (!$album->loaded) { -      return rest::not_found(); +    if (!$item->loaded) { +      return rest::not_found("Resource: {$request->path} missing.");      } -    $response_data = array("path" => $album->relative_path(), -                           "title" => $album->title, -                           "thumb_url" => $album->thumb_url(), -                           "url" => $album->abs_url(), -                           "description" => $album->description, -                           "internet_address" => $album->slug); +    $response_data = array("path" => $item->relative_path(), +                           "title" => $item->title, +                           "thumb_url" => $item->thumb_url(), +                           "url" => $item->abs_url(), +                           "description" => $item->description, +                           "internet_address" => $item->slug); -    $children = self::_get_children($album, $request); +    $children = self::_get_children($item, $request);      if (!empty($children)) {        $response_data["children"] = $children;      } -    return rest::success(array("album" => $response_data)); +    return rest::success(array($item->type => $response_data));    } -  private static function _get_children($album, $request) { +  private static function _get_children($item, $request) {      $children = array();      $limit = empty($request->limit) ? null : $request->limit;      $offset = empty($request->offset) ? null : $request->offset;      $where = empty($request->filter) ? array() : array("type" => $request->filter); -    foreach ($album->children($limit, $offset, $where) as $child) { +    foreach ($item->viewable()->children($limit, $offset, $where) as $child) {        $children[] = array("type" => $child->type,                            "has_children" => $child->children_count() > 0,                            "path" => $child->relative_path(), diff --git a/modules/rest/tests/Rest_Controller_Test.php b/modules/rest/tests/Rest_Controller_Test.php index 1417c315..d9b576de 100644 --- a/modules/rest/tests/Rest_Controller_Test.php +++ b/modules/rest/tests/Rest_Controller_Test.php @@ -33,7 +33,6 @@ class Rest_Controller_Test extends Unit_Test_Case {      $filename = MODPATH . "gallery/tests/test.jpg";      $rand = rand();      $this->_photo = photo::create($this->_child, $filename, "$rand.jpg", $rand); -    $this->_path = $this->_photo->relative_path();    }    public function teardown() { @@ -97,10 +96,15 @@ class Rest_Controller_Test extends Unit_Test_Case {    }    public function rest_get_resource_no_request_key_test() { -    $_SERVER["HTTP_X_HTTP_METHOD_OVERRIDE"] = "GET"; +    $_SERVER["REQUEST_METHOD"] = "GET";      $this->assert_equal( -      json_encode(array("status" => "ERROR", "message" => (string)t("Authorization failed"))), +      json_encode(array("status" => "OK", "message" => (string)t("Processed"), +                        "photo" => array("path" => $this->_photo->relative_path(), +                                        "title" => $this->_photo->title, +                                        "thumb_url" => $this->_photo->thumb_url(), +                                        "description" => $this->_photo->description, +                                        "internet_address" => $this->_photo->slug))),        $this->_call_controller("rest", explode("/", $this->_photo->relative_path())));    } @@ -141,12 +145,11 @@ class Rest_Controller_Test extends Unit_Test_Case {      $this->assert_equal(        json_encode(array("status" => "OK", "message" => (string)t("Processed"), -                        "item" => array("path" => $this->_photo->relative_path_cache, +                        "photo" => array("path" => $this->_photo->relative_path(),                                          "title" => $this->_photo->title,                                          "thumb_url" => $this->_photo->thumb_url(),                                          "description" => $this->_photo->description, -                                        "internet_address" => $this->_photo->slug, -                                        "type" => $this->_photo->type))), +                                        "internet_address" => $this->_photo->slug))),        $this->_call_controller("rest", explode("/", $this->_photo->relative_path())));    } @@ -170,13 +173,12 @@ class rest_rest {      $item = ORM::factory("item")        ->where("relative_path_cache", $request->path)        ->find(); -    $response["path"] = $item->relative_path_cache; +    $response["path"] = $item->relative_path();      $response["title"] = $item->title;      $response["thumb_url"] = $item->thumb_url();      $response["description"] = $item->description;      $response["internet_address"] = $item->slug; -    $response["type"] = $item->type; -    return rest::success(array("item" => $response), t("Processed")); +    return rest::success(array($item->type => $response), t("Processed"));    }  }  | 
