refreshToken method

Future<NIMResult<V2NIMUserAIBot>> refreshToken()

Implementation

Future<NIMResult<V2NIMUserAIBot>> refreshToken() async {
  final accid = bot?.accid;
  if (accid == null || accid.isEmpty) {
    return NIMResult.failure(message: 'invalid accid');
  }
  final result = await NimCore.instance.aiService.refreshUserAIBotToken(
    V2NIMRefreshUserAIBotTokenParams(accid: accid),
  );
  if (!result.isSuccess) {
    return NIMResult.failure(message: result.errorDetails);
  }
  if (result.data?.token?.isNotEmpty == true) {
    bot?.token = result.data?.token;
  }
  final latest = await fetchBot(accid);
  if (latest.isSuccess && latest.data != null) {
    latest.data!.token = latest.data!.token ?? result.data?.token;
    bot = latest.data;
    notifyListeners();
    return latest;
  }
  notifyListeners();
  return NIMResult.success(data: bot);
}