refreshChatGptCredentials function

Future<ChatGptOAuthCredentials> refreshChatGptCredentials(
  1. ChatGptOAuthCredentials credentials, {
  2. Client? client,
})

Implementation

Future<ChatGptOAuthCredentials> refreshChatGptCredentials(
  ChatGptOAuthCredentials credentials, {
  http.Client? client,
}) async {
  final refreshed = await _tokenRequest(
    {
      'grant_type': 'refresh_token',
      'refresh_token': credentials.refreshToken,
      'client_id': chatGptOAuthClientId,
    },
    client: client,
    jsonBody: true,
  );
  return ChatGptOAuthCredentials(
    accessToken: refreshed.accessToken,
    refreshToken: refreshed.refreshToken.isEmpty
        ? credentials.refreshToken
        : refreshed.refreshToken,
    idToken: refreshed.idToken.isEmpty
        ? credentials.idToken
        : refreshed.idToken,
    accountId: refreshed.accountId ?? credentials.accountId,
    expiresAt: refreshed.expiresAt ?? credentials.expiresAt,
  );
}