addArgument('client-id', null, 'Filter by client ID'); } public function __invoke(ArgvInput|InputInterface $input, ClimateOutput|OutputInterface $output): int { if ($input->getArgument('client-id')) { $client = Client::find($input->getArgument('client-id')); if (!$client) { $output->red('No OAuth client found with the specified client ID.'); return self::SUCCESS; } $output->json([ 'ID' => $client->id, 'Name' => $client->name, 'Client ID' => $client->client_id, 'Client Secret' => $client->client_secret, 'Grant Types' => implode(', ', $client->grant_types->toArray()), 'Access Token Url' => Config::get('app.url') . '/client/access_token', 'OAuth Config Url' => Config::get('app.url') . '/client/' . $client->id . '/.well-known/openid-configuration', 'Scopes' => $client->scopes->toArray() ]); return self::SUCCESS; } $clients = Client::all('id', 'name', 'client_id', 'client_secret', 'grant_types'); if ($clients->isEmpty()) { $output->yellow('No OAuth clients found.'); return self::SUCCESS; } $outputArray = []; $clients->map(function (Client $client) use (&$outputArray, $input) { $outputValues = [ 'ID' => $client->id, 'Name' => $client->name, 'Client ID' => $client->client_id, 'Grant Types' => implode(', ', $client->grant_types->toArray()), ]; $outputArray[] = $outputValues; }); $output->table($outputArray); return self::SUCCESS; } }