url); $items = array(); foreach ($tag->items() as $item) { if (access::can("view", $item)) { $items[] = rest::url("tag_item", $tag, $item); } } return array( "url" => $request->url, "members" => $items); } static function post($request) { $tag = rest::resolve($request->params->entity->tag); $item = rest::resolve($request->params->entity->item); access::required("view", $item); if (!$tag->loaded()) { throw new Kohana_404_Exception(); } tag::add($item, $tag->name); return array( "url" => rest::url("tag_item", $tag, $item), "members" => array( "tag" => rest::url("tag", $tag), "item" => rest::url("item", $item))); } static function delete($request) { list ($tag, $item) = rest::resolve($request->url); access::required("edit", $item); $tag->remove($item); $tag->save(); } static function resolve($id) { return ORM::factory("tag", $id); } static function url($tag) { return url::abs_site("rest/tag_items/{$tag->id}"); } }