show a single notice in atom entry format

This commit is contained in:
Evan Prodromou 2010-10-24 15:58:53 -04:00
parent 69a1ecec9b
commit 43a67b150a
3 changed files with 20 additions and 6 deletions

View File

@ -105,8 +105,8 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
{
parent::handle($args);
if (!in_array($this->format, array('xml', 'json'))) {
$this->clientError(_('API method not found.'), $code = 404);
if (!in_array($this->format, array('xml', 'json', 'atom'))) {
$this->clientError(_('API method not found.'), 404);
return;
}
@ -122,10 +122,18 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
function showNotice()
{
if (!empty($this->notice)) {
if ($this->format == 'xml') {
switch ($this->format) {
case 'xml':
$this->showSingleXmlStatus($this->notice);
} elseif ($this->format == 'json') {
break;
case 'json':
$this->show_single_json_status($this->notice);
break;
case 'atom':
$this->showSingleAtomStatus($this->notice);
break;
default:
throw new Exception(sprintf(_("Unsupported format: %s"), $this->format));
}
} else {

View File

@ -726,6 +726,12 @@ class ApiAction extends Action
$this->endDocument('xml');
}
function showSingleAtomStatus($notice)
{
header('Content-Type: application/atom+xml; charset=utf-8');
print $notice->asAtomEntry(true, true, true, $this->auth_user);
}
function show_single_json_status($notice)
{
$this->initDocument('json');

View File

@ -399,12 +399,12 @@ class Router
$m->connect('api/statuses/show.:format',
array('action' => 'ApiStatusesShow',
'format' => '(xml|json)'));
'format' => '(xml|json|atom)'));
$m->connect('api/statuses/show/:id.:format',
array('action' => 'ApiStatusesShow',
'id' => '[0-9]+',
'format' => '(xml|json)'));
'format' => '(xml|json|atom)'));
$m->connect('api/statuses/update.:format',
array('action' => 'ApiStatusesUpdate',