fromResponse static method

OAuthToken fromResponse(
  1. AccessTokenResponse response, {
  2. OAuthToken? oldToken,
})

Implementation

static OAuthToken fromResponse(AccessTokenResponse response,
    {OAuthToken? oldToken}) {
  final atExpiresAt =
      DateTime.now().millisecondsSinceEpoch + response.expiresIn * 1000;

  var refreshToken;
  var rtExpiresAt;

  if (response.refreshToken != null) {
    refreshToken = response.refreshToken;
    if (refreshToken != null && response.refreshTokenExpiresIn != null) {
      rtExpiresAt = DateTime.now().millisecondsSinceEpoch +
          response.refreshTokenExpiresIn! * 1000;
    }
  } else {
    refreshToken = oldToken != null
        ? oldToken.refreshToken
        : throw KakaoClientException(
            'Refresh token not found in the response.');
    rtExpiresAt = oldToken.refreshTokenExpiresAt.millisecondsSinceEpoch;
  }

  var scopes;
  if (response.scope != null) {
    scopes = response.scope!.split(' ');
  } else {
    scopes = oldToken?.scopes;
  }
  return OAuthToken(
      response.accessToken,
      DateTime.fromMillisecondsSinceEpoch(atExpiresAt),
      refreshToken,
      DateTime.fromMillisecondsSinceEpoch(rtExpiresAt),
      scopes);
}