]> git.mxchange.org Git - friendica.git/blob - src/Module/Api/Friendica/Events/Index.php
Issue 12191: We can now follow and unfollow tags via API
[friendica.git] / src / Module / Api / Friendica / Events / Index.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2022, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Module\Api\Friendica\Events;
23
24 use Friendica\Content\Text\BBCode;
25 use Friendica\Database\DBA;
26 use Friendica\Module\BaseApi;
27
28 /**
29  * api/friendica/events
30  *
31  * @package Friendica\Module\Api\Friendica\Events
32  */
33 class Index extends BaseApi
34 {
35         protected function rawContent(array $request = [])
36         {
37                 self::checkAllowedScope(self::SCOPE_READ);
38                 $uid = self::getCurrentUserID();
39
40                 $request = $this->getRequest([
41                         'since_id' => 0,
42                         'count'    => 50,
43                 ], $request);
44
45                 $condition = ["`id` > ? AND `uid` = ?", $request['since_id'], $uid];
46                 $params = ['limit' => $request['count']];
47                 $events = DBA::selectToArray('event', [], $condition, $params);
48
49                 $items = [];
50                 foreach ($events as $event) {
51                         $items[] = [
52                                 'id'         => intval($event['id']),
53                                 'uid'        => intval($event['uid']),
54                                 'cid'        => $event['cid'],
55                                 'uri'        => $event['uri'],
56                                 'name'       => $event['summary'],
57                                 'desc'       => BBCode::convertForUriId($event['uri-id'], $event['desc']),
58                                 'start_time' => $event['start'],
59                                 'end_time'   => $event['finish'],
60                                 'type'       => $event['type'],
61                                 'nofinish'   => $event['nofinish'],
62                                 'place'      => $event['location'],
63                                 'adjust'     => 1,
64                                 'ignore'     => $event['ignore'],
65                                 'allow_cid'  => $event['allow_cid'],
66                                 'allow_gid'  => $event['allow_gid'],
67                                 'deny_cid'   => $event['deny_cid'],
68                                 'deny_gid'   => $event['deny_gid']
69                         ];
70                 }
71
72                 $this->response->exit('events', ['events' => $items], $this->parameters['extension'] ?? null);
73         }
74 }