. * */ namespace Friendica\Module\Api\Mastodon; use Friendica\Core\System; use Friendica\DI; use Friendica\Module\BaseApi; use Friendica\Model\Group; /** * @see https://docs.joinmastodon.org/methods/timelines/lists/ */ class Lists extends BaseApi { public static function delete(array $parameters = []) { self::login(); $uid = self::getCurrentUserID(); if (empty($parameters['id'])) { DI::mstdnError()->UnprocessableEntity(); } if (!Group::exists($parameters['id'], $uid)) { DI::mstdnError()->RecordNotFound(); } if (!Group::remove($parameters['id'])) { DI::mstdnError()->InternalError(); } System::jsonExit([]); } public static function post(array $parameters = []) { self::login(); $uid = self::getCurrentUserID(); $title = $_REQUEST['title'] ?? ''; if (empty($title)) { DI::mstdnError()->UnprocessableEntity(); } Group::create($uid, $title); $id = Group::getIdByName($uid, $title); if (!$id) { DI::mstdnError()->InternalError(); } System::jsonExit(DI::mstdnList()->createFromGroupId($id)); } public static function put(array $parameters = []) { $data = self::getPutData(); if (empty($data['title']) || empty($parameters['id'])) { DI::mstdnError()->UnprocessableEntity(); } Group::update($parameters['id'], $data['title']); } /** * @param array $parameters * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function rawContent(array $parameters = []) { self::login(); $uid = self::getCurrentUserID(); if (empty($parameters['id'])) { $lists = []; $groups = Group::getByUserId($uid); foreach ($groups as $group) { $lists[] = DI::mstdnList()->createFromGroupId($group['id']); } } else { $id = $parameters['id']; if (!Group::exists($id, $uid)) { DI::mstdnError()->RecordNotFound(); } $lists = DI::mstdnList()->createFromGroupId($id); } System::jsonExit($lists); } }