. * */ namespace Friendica\Module\Api\Friendica; use Friendica\Model\Item; use Friendica\Model\Post; use Friendica\Module\BaseApi; use Friendica\Network\HTTPException\BadRequestException; /** * API endpoints: * - /api/friendica/activity/like * - /api/friendica/activity/dislike * - /api/friendica/activity/attendyes * - /api/friendica/activity/attendno * - /api/friendica/activity/attendmaybe * - /api/friendica/activity/unlike * - /api/friendica/activity/undislike * - /api/friendica/activity/unattendyes * - /api/friendica/activity/unattendno * - /api/friendica/activity/unattendmaybe */ class Activity extends BaseApi { protected function post(array $request = []) { self::checkAllowedScope(self::SCOPE_WRITE); $uid = self::getCurrentUserID(); $request = $this->getRequest([ 'id' => 0, // Id of the post ], $request); $post = Post::selectFirst(['id'], ['uri-id' => $request['id'], 'uid' => [0, $uid]], ['order' => ['uid' => true]]); if (empty($post['id'])) { throw new BadRequestException('Item id not found'); } $res = Item::performActivity($post['id'], $this->parameters['verb'], $uid); if ($res) { if (($this->parameters['extension'] ?? '') == 'xml') { $ok = 'true'; } else { $ok = 'ok'; } $this->response->exit('ok', ['ok' => $ok], $this->parameters['extension'] ?? null); } else { $this->response->error(500, 'Error adding activity', '', $this->parameters['extension'] ?? null); } } }