. * */ namespace Friendica\Module\Api\Mastodon; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Module\BaseApi; /** * @see https://docs.joinmastodon.org/methods/timelines/conversations/ */ class Conversation extends BaseApi { public static function delete(array $parameters = []) { self::login(self::SCOPE_WRITE); $uid = self::getCurrentUserID(); if (!empty($parameters['id'])) { DI::mstdnError()->UnprocessableEntity(); } DBA::delete('conv', ['id' => $parameters['id'], 'uid' => $uid]); DBA::delete('mail', ['convid' => $parameters['id'], 'uid' => $uid]); System::jsonExit([]); } /** * @param array $parameters * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function rawContent(array $parameters = []) { self::login(self::SCOPE_READ); $uid = self::getCurrentUserID(); $request = self::getRequest([ 'limit' => 20, // Maximum number of results. Defaults to 20. Max 40. 'max_id' => 0, // Return results older than this ID. Use HTTP Link header to paginate. 'since_id' => 0, // Return results newer than this ID. Use HTTP Link header to paginate. 'min_id' => 0, // Return results immediately newer than this ID. Use HTTP Link header to paginate. ]); $params = ['order' => ['id' => true], 'limit' => $request['limit']]; $convs = DBA::select('conv', ['id'], ['uid' => $uid], $params); $conversations = []; foreach ($convs as $conv) { $conversations[] = DI::mstdnConversation()->CreateFromConvId($conv['id']); } System::jsonExit($conversations); } }