]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/twitapiblocks.php
change Laconica and Control Yourself to StatusNet in PHP files
[quix0rs-gnu-social.git] / actions / twitapiblocks.php
index a498d2038d56889e1aaf2433bdf77ae96c8f4781..5d579b3c51d1057407f5b2e4119db3de634ce7cd 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+ * StatusNet - a distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) { exit(1); }
+if (!defined('LACONICA')) {
+    exit(1);
+}
 
 require_once(INSTALLDIR.'/lib/twitterapi.php');
 
-class TwitapiblocksAction extends TwitterapiAction {
-
-       function create($args, $apidata) {
-               parent::handle($args);
-               common_server_error("API method under construction.", $code=501);
-               exit();
-       }
-       
-       function destroy($args, $apidata) {
-               parent::handle($args);
-               common_server_error("API method under construction.", $code=501);
-               exit();
-       }
-       
+class TwitapiblocksAction extends TwitterapiAction
+{
+
+    function create($args, $apidata)
+    {
+
+        parent::handle($args);
+
+        $blockee = $this->get_user($apidata['api_arg'], $apidata);
+
+        if (empty($blockee)) {
+            $this->clientError('Not Found', 404, $apidata['content-type']);
+            return;
+        }
+
+        $user = $apidata['user']; // Always the auth user
+
+        if ($user->hasBlocked($blockee) || $user->block($blockee)) {
+            $type = $apidata['content-type'];
+            $this->init_document($type);
+            $this->show_profile($blockee, $type);
+            $this->end_document($type);
+        } else {
+            $this->serverError(_('Block user failed.'));
+        }
+    }
+
+    function destroy($args, $apidata)
+    {
+        parent::handle($args);
+        $blockee = $this->get_user($apidata['api_arg'], $apidata);
+
+        if (empty($blockee)) {
+            $this->clientError('Not Found', 404, $apidata['content-type']);
+            return;
+        }
+
+        $user = $apidata['user'];
+
+        if (!$user->hasBlocked($blockee) || $user->unblock($blockee)) {
+            $type = $apidata['content-type'];
+            $this->init_document($type);
+            $this->show_profile($blockee, $type);
+            $this->end_document($type);
+        } else {
+            $this->serverError(_('Unblock user failed.'));
+        }
+    }
 }
\ No newline at end of file