]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - actions/twitapiblocks.php
correctly init the document type for block API actions
[quix0rs-gnu-social.git] / actions / twitapiblocks.php
1 <?php
2 /*
3  * Laconica - a distributed open-source microblogging tool
4  * Copyright (C) 2008, Controlez-Vous, Inc.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Affero General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Affero General Public License for more details.
15  *
16  * You should have received a copy of the GNU Affero General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 if (!defined('LACONICA')) { exit(1); }
21
22 require_once(INSTALLDIR.'/lib/twitterapi.php');
23
24 class TwitapiblocksAction extends TwitterapiAction {
25
26         function create($args, $apidata) {
27
28                 parent::handle($args);
29
30                 $blockee = $this->get_user($apidata['api_arg'], $apidata);
31
32         if (!$blockee) {
33                         $this->client_error('Not Found', 404, $apidata['content-type']);
34                         return;
35         }
36
37         $user = $apidata['user'];
38
39         if ($user->hasBlocked($blockee) || $user->block($blockee)) {
40             $type = $apidata['content-type'];
41             $this->init_document($type);
42             $this->show_profile($blockee, $type);
43             $this->end_document($type);
44         } else {
45                         common_server_error(_('Block user failed.'));
46         }
47         }
48
49         function destroy($args, $apidata) {
50                 parent::handle($args);
51                 $blockee = $this->get_user($apidata['api_arg'], $apidata);
52
53         if (!$blockee) {
54                         $this->client_error('Not Found', 404, $apidata['content-type']);
55                         return;
56         }
57
58         $user = $apidata['user'];
59
60         if (!$user->hasBlocked($blockee) || $user->unblock($blockee)) {
61             $type = $apidata['content-type'];
62             $this->init_document($type);
63             $this->show_profile($blockee, $type);
64             $this->end_document($type);
65         } else {
66                         common_server_error(_('Unblock user failed.'));
67         }
68         }
69 }