refreshAccessToken method

  1. @override
Future<DiscordToken> refreshAccessToken()
override

Implementation

@override
Future<DiscordToken> refreshAccessToken() async {
  assert(_discordToken != null);
  final options = Options(
    contentType: Headers.formUrlEncodedContentType,
  );
  final data = <String, String>{
    'client_id': clientId,
    'client_secret': clientSecret,
    'grant_type': 'refresh_token',
    'refresh_token': _discordToken!.refreshToken,
  };
  final response = await dio.postUri<Map<String, dynamic>>(
    DiscordClient.tokenUri,
    options: options,
    data: data,
  );
  if (response.data != null) {
    _discordToken = DiscordToken.fromJson(response.data!);
    return _discordToken!;
  } else {
    throw const DiscordApiException('Could not refresh token');
  }
}