refreshToken method

Future<bool> refreshToken(
  1. String? parentUrl
)

Implementation

Future<bool> refreshToken(String? parentUrl) async {
  _isRefreshing = true;
  _completer = Completer();
  String refreshToken = "";

  if (refreshToken.isEmpty) {
    _isRefreshing = false;
    _logoutUser();
    return false;
  }

  // TODO add your refresh token API here
  final url = Uri.parse("");
  final request = {'refresh_token': refreshToken};
  debugPrint('Refresh Req Body : ${request.toString()}');

  final response = await http.post(
    url,
    body: jsonEncode(request),
    headers: {'Content-Type': 'application/json'},
  );
  debugPrint('Refresh Resp   : ${response.toString()}');
  debugPrint('Refresh Resp Code : ${response.statusCode}');

  debugPrint('Refresh Resp Body : ${response.body.toString()}');

  if (response.statusCode == 200 || response.statusCode == 201) {
    final Map<String, dynamic> body = jsonDecode(response.body);
    final newAccessToken = body['access_token'];
    final newRefreshToken = body['refresh_token'];
    // await sharedPref.saveAccessToken(newAccessToken);
    // await sharedPref.saveRefreshToken(newRefreshToken);
    _isRefreshing = false;
    return true;
  } else {
    await _logoutUser();
    _isRefreshing = false;
    return false;
  }
}