Add output formats to our REST controllers. Add support for JSON and

XML to the comment controllers as a proof of concept.  It's not fully
baked; we should examine ways to create helpers to make this process
easier.
This commit is contained in:
Bharat Mediratta
2008-11-17 00:30:18 +00:00
parent 0975e702a9
commit c91e90406b
9 changed files with 98 additions and 37 deletions

View File

@@ -31,14 +31,26 @@ class Comment_Controller extends REST_Controller {
/**
* Get an existing comment.
* @see Rest_Controller::_get($resource)
* @see Rest_Controller::_get($resource, $output_format)
*/
public function _get($comment) {
$v = new View("comment.html");
$v->comment = $comment;
print $v;
public function _get($comment, $output_format) {
switch ($output_format) {
case "xml":
print xml::to_xml($comment->as_array(), array("comment"));
break;
case "json":
print json_encode($comment->as_array());
break;
default:
$v = new View("comment.$output_format");
$v->comment = $comment;
print $v;
}
}
/**
* Update existing comment.
* @see Rest_Controller::_put($resource)
@@ -46,7 +58,6 @@ class Comment_Controller extends REST_Controller {
public function _put($comment) {
$form = comment::get_edit_form($comment);
if ($form->validate()) {
$comment = ORM::factory('comment');
$comment->author = $this->input->post('author');
$comment->email = $this->input->post('email');
$comment->text = $this->input->post('text');