createApiKey function

Future<String?> createApiKey({
  1. required String accessToken,
  2. HttpClient? httpClient,
})

Create and store an API key.

Implementation

Future<String?> createApiKey({
  required String accessToken,
  HttpClient? httpClient,
}) async {
  final config = getOauthConfig();
  final client = httpClient ?? HttpClient();
  try {
    final request = await client.postUrl(Uri.parse(config.apiKeyUrl));
    request.headers.set('Authorization', 'Bearer $accessToken');
    request.headers.contentLength = 0;
    final response = await request.close().timeout(const Duration(seconds: 15));

    final responseBody = await response.transform(utf8.decoder).join();
    final data = jsonDecode(responseBody) as Map<String, dynamic>;
    return data['raw_key'] as String?;
  } finally {
    if (httpClient == null) client.close();
  }
}