From 35d17146213228445b0f30548aca01c9e1a71154 Mon Sep 17 00:00:00 2001 From: zach Date: Fri, 15 Aug 2008 14:53:17 -0400 Subject: Twitter-compatible API: support for new in_reply_to_status_id in statuses/update darcs-hash:20080815185317-ca946-11c3f9f7255180d5d6ea7b115b3e33b2abb7fe93.gz --- actions/twitapistatuses.php | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'actions') diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index b2bbb16f0..3f9e93073 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -375,9 +375,9 @@ class TwitapistatusesAction extends TwitterapiAction { parent::handle($args); $user = $apidata['user']; - $status = $this->trimmed('status'); $source = $this->trimmed('source'); + $in_reply_to_status_id = intval($this->trimmed('in_reply_to_status_id')); if (!$source) { $source = 'api'; @@ -397,16 +397,30 @@ class TwitapistatusesAction extends TwitterapiAction { // as "truncated." Sending this error may screw up some clients // that assume Twitter will truncate for them. Should we just // truncate too? -- Zach - header('HTTP/1.1 406 Not Acceptable'); - print "That's too long. Max notice size is 140 chars.\n"; + $this->client_error('That\'s too long. Max notice size is 140 chars.', $code = 406, $apidata['content-type']); exit(); } - $notice = Notice::saveNew($user->id, $status, $source); + $reply_to = NULL; + + if ($in_reply_to_status_id) { + + // check whether notice actually exists + $reply = Notice::staticGet($in_reply_to_status_id); + + if ($reply) { + $reply_to = $in_reply_to_status_id; + } else { + $this->client_error('Not found', $code = 404, $apidata['content-type']); + exit(); + } + } + + $notice = Notice::saveNew($user->id, $status, $source, 1, $reply_to); if (is_string($notice)) { $this->server_error($notice); - return; + exit(); } common_broadcast_notice($notice); -- cgit v1.2.3-54-g00ecf