diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-06-16 18:05:15 -0700 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-06-16 18:05:15 -0700 |
commit | 1aeaa7daabf2c00df45088f4a90615b463fb9f90 (patch) | |
tree | a6e7046de93b680c1b4430e9fe00e837677a00c9 /modules/comment/helpers/comments_rest.php | |
parent | bd496cc95c01d8058cacfd79347f626652d42464 (diff) |
Add REST support for comments. You can view, add, edit and delete
comments.
Diffstat (limited to 'modules/comment/helpers/comments_rest.php')
-rw-r--r-- | modules/comment/helpers/comments_rest.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/modules/comment/helpers/comments_rest.php b/modules/comment/helpers/comments_rest.php new file mode 100644 index 00000000..1cedb80b --- /dev/null +++ b/modules/comment/helpers/comments_rest.php @@ -0,0 +1,62 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2010 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class comments_rest_Core { + /** + * Possible request parameters: + * start=# + * start at the Nth comment (zero based) + * + * num=# + * return up to N comments (max 100) + */ + static function get($request) { + $comments = array(); + + $p = $request->params; + $num = isset($p->num) ? min((int)$p->num, 100) : 10; + $start = isset($p->start) ? (int)$p->start : 0; + + foreach (ORM::factory("comment")->viewable()->find_all($num, $start) as $comment) { + $comments[] = rest::url("comment", $comment); + } + return array("url" => rest::url("comments"), + "members" => $comments); + } + + + static function post($request) { + $entity = $request->params->entity; + + $item = rest::resolve($entity->item); + access::required("edit", $item); + + $comment = ORM::factory("comment"); + $comment->author_id = identity::active_user()->id; + $comment->item_id = $item->id; + $comment->text = $entity->text; + $comment->save(); + + return array("url" => rest::url("comment", $comment)); + } + + static function url() { + return url::abs_site("rest/comments"); + } +} |