. // }}} /** * Pinboard server API, doesn't (currently) allow importing from the * official website * * @package GNUsocial * * @author Hugo Sales * @copyright 2022 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ namespace Plugin\Pinboard; use App\Core\Event; use App\Core\Modules\Plugin; use App\Core\Router; use Plugin\Pinboard\Controller as C; use Symfony\Component\HttpFoundation\Request; class Pinboard extends Plugin { public const controller_route = 'pinboard_settings'; public function onAddRoute(Router $r): bool { $r->connect( self::controller_route, '/pinboard/settings', C\Settings::class, options: ['method' => 'post'], ); $r->connect( 'pinboard_posts_update', '/pinboard/v1/posts/update', [C\APIv1::class, 'posts_update'], ); $r->connect( 'pinboard_posts_add', '/pinboard/v1/posts/add', [C\APIv1::class, 'posts_add'], ); $r->connect( 'pinboard_posts_delete', '/pinboard/v1/posts/delete', [C\APIv1::class, 'posts_delete'], ); $r->connect( 'pinboard_posts_get', '/pinboard/v1/posts/get', [C\APIv1::class, 'posts_get'], ); $r->connect( 'pinboard_posts_recent', '/pinboard/v1/posts/recent', [C\APIv1::class, 'posts_recent'], ); $r->connect( 'pinboard_posts_all', '/pinboard/v1/posts/all', [C\APIv1::class, 'posts_all'], ); return Event::next; } public function onPopulateSettingsTabs(Request $request, string $section, array &$tabs): bool { if ($section === 'api') { $tabs[] = [ 'title' => 'Pinboard', 'desc' => 'Pinboard API settings', 'id' => 'settings-pinboard-api', 'controller' => C\Settings::setup(), ]; } return Event::next; } }