@NonNull
  private AuthResponse refreshAccessToken(AuthResponse currentAuth)
      throws IOException, HttpResponseStatusException {
    OkHttpClient client = OkHttpUtil.getClient(context);
    Retrofit retrofit =
        new Retrofit.Builder()
            .client(client)
            .baseUrl(config.getApiHostURL())
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    LoginService loginService = retrofit.create(LoginService.class);

    retrofit2.Response<AuthResponse> refreshTokenResponse;
    refreshTokenResponse =
        loginService
            .refreshAccessToken(
                "refresh_token", config.getOAuthClientId(), currentAuth.refresh_token)
            .execute();
    if (!refreshTokenResponse.isSuccessful()) {
      throw new HttpResponseStatusException(refreshTokenResponse.code());
    }
    AuthResponse refreshTokenData = refreshTokenResponse.body();
    loginPrefs.storeRefreshTokenResponse(refreshTokenData);
    return refreshTokenData;
  }