refresh method

Future<bool> refresh()

Passed to VoApiClient as onUnauthorized.

Implementation

Future<bool> refresh() async {
  final refreshToken = await _storage.getRefreshToken();
  if (refreshToken == null) return false;

  final result = await _service.refresh(
    RefreshTokenPayload(refreshToken: refreshToken),
  );
  return result.when(
    success: (tokens) async {
      tokenManager.setToken(tokens.accessToken);
      await _storage.saveRefreshToken(tokens.refreshToken);
      return true;
    },
    failure: (_) async {
      await signOut();
      return false;
    },
  );
}