url); $tags = array(); foreach (tag::item_tags($item) as $tag) { $tags[] = rest::url("tag_item", $tag, $item); } return array( "url" => $request->url, "members" => $tags); } static function post($request) { $tag = rest::resolve($request->params->entity->tag); $item = rest::resolve($request->params->entity->item); access::required("view", $item); tag::add($item, $tag->name); return array( "url" => rest::url("tag_item", $tag, $item), "members" => array( rest::url("tag", $tag), 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) { $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/item_tags/{$item->id}"); } }