url); access::required("view", $item); $p = $request->params; if (!isset($p->size) || !in_array($p->size, array("thumb", "resize", "full"))) { throw new Rest_Exception("Bad Request", 400, array("errors" => array("size" => "invalid"))); } switch ($p->size) { case "thumb": $entity = array( "width" => $item->thumb_width, "height" => $item->thumb_height, "path" => $item->thumb_path()); break; case "resize": $entity = array( "width" => $item->resize_width, "height" => $item->resize_height, "path" => $item->resize_path()); break; case "full": $entity = array( "width" => $item->width, "height" => $item->height, "path" => $item->file_path()); break; } if (file_exists($entity["path"]) && is_file($entity["path"])) { $entity["size"] = filesize($entity["path"]); $entity["contents"] = file_get_contents($entity["path"]); } else { $entity["size"] = null; $entity["contents"] = null; } unset($entity["path"]); $result = array( "url" => $request->url, "entity" => $entity, "relationships" => rest::relationships("data", $item)); return $result; } static function resolve($id) { $item = ORM::factory("item", $id); if (!access::can("view", $item)) { throw new Kohana_404_Exception(); } return $item; } static function url($item) { return url::abs_site("rest/data/{$item->id}"); } }