list method

Future<List<DVOAuthClient>> list({
  1. required Object? user,
})

The current organization's clients, oldest first.

Implementation

Future<List<DVOAuthClient>> list({required Object? user}) async {
  final DVPlatformApi platform = _platform();
  final DVOAuthProvider provider = await _provider(platform);
  final String tenant = const DVTenants().currentTenant;
  await _authorize<DVOAuthClientResource>(
    authorization,
    user,
    'viewAny',
    DVOAuthClientResource(tenant: tenant),
  );
  final List<Map<String, Object?>> rows = await provider.database.query(
    'SELECT id FROM dv_oauth_clients WHERE tenant = ?',
    <Object?>[tenant],
  );
  final List<DVOAuthClient> clients = <DVOAuthClient>[
    for (final Map<String, Object?> row in rows)
      if (await provider.findClient('${row['id']}')
          case final DVOAuthClient client)
        client,
  ]..sort((DVOAuthClient a, DVOAuthClient b) => a.createdAt.compareTo(b.createdAt));
  return clients;
}