init and end documents

darcs-hash:20080718043456-84dde-ffe825e8021e0f803fbbecacdc93d26309853daa.gz
This commit is contained in:
Evan Prodromou 2008-07-18 00:34:56 -04:00
parent abfe53311f
commit 310d02ae40
2 changed files with 51 additions and 4 deletions

View File

@ -32,6 +32,7 @@ class TwitapifriendshipsAction extends TwitterapiAction {
if (!$other) {
$this->client_error(_('No such user'));
exit();
return;
}
@ -39,6 +40,7 @@ class TwitapifriendshipsAction extends TwitterapiAction {
if ($user->isSubscribed($other)) {
$this->client_error(_('Already subscribed.'));
exit();
return;
}
@ -50,14 +52,16 @@ class TwitapifriendshipsAction extends TwitterapiAction {
if (!$result) {
$this->server_error(_('Could not subscribe'));
exit();
return;
}
mail_subscribe_notify($other, $user);
common_start_xml();
$type = $apidata['content-type'];
$this->init_document($type);
$this->show_profile($other);
common_end_xml();
$this->end_document($type);
exit();
}
@ -90,9 +94,10 @@ class TwitapifriendshipsAction extends TwitterapiAction {
$sub->delete();
}
common_start_xml();
$type = $apidata['content-type'];
$this->init_document($type);
$this->show_profile($other);
common_end_xml();
$this->end_document($type);
exit();
}

View File

@ -203,6 +203,48 @@ class TwitterapiAction extends Action {
return NULL;
}
function init_document($type='xml') {
switch ($type) {
case 'xml':
header('Content-Type: application/xml; charset=utf-8');
common_start_xml();
break;
case 'json':
header('Content-Type: application/json; charset=utf-8');
break;
case 'rss':
header("Content-Type: application/rss+xml; charset=utf-8");
$this->init_twitter_rss();
break;
case 'atom':
header('Content-Type: application/atom+xml; charset=utf-8');
$this->init_twitter_atom();
break;
default:
$this->client_error(_('Unsupported type'));
break;
}
}
function end_document($type='xml') {
switch ($type) {
case 'xml':
common_end_xml();
break;
case 'json':
break;
case 'rss':
$this->end_twitter_rss();
break;
case 'atom':
$this->end_twitter_rss();
break;
default:
$this->client_error(_('Unsupported type'));
break;
}
}
function init_twitter_rss() {
common_start_xml();
common_element_start('rss', array('version' => '2.0'));