refreshHeaders method

Future<Map<String, String>> refreshHeaders()

Implementation

Future<Map<String, String>> refreshHeaders() async {
  if (getImageUrl().isEmpty) {
    return {};
  }
  var count = 0;
  // logic to get refreshed headers
  // get the available current Token
  var token = await Mirrorfly.getCurrentAuthToken();
  // This might involve checking the token expiration, refreshing the token if needed, and returning the headers
  while ((await isTokenExpired(token))) {
    if (count <= 1) {
      count++;
      if (SessionManagement.getUsername().checkNull().isNotEmpty &&
          SessionManagement.getPassword().checkNull().isNotEmpty) {
        await Mirrorfly.refreshAndGetAuthToken(flyCallBack: (response) {
          token = response.data;
        });
      }
      LogMessage.d(
          "ImageNetwork", "refreshAndGetAuthToken retryCount $count");
    } else {
      LogMessage.d("ImageNetwork",
          "refreshHeaders $count retryCount exceed retrying stopped...");
      break;
    }
  }
  LogMessage.d("ImageNetwork",
      "refreshHeaders url ${getImageUrl()} token: $token statusCode : ${200} retryCount : $count");
  // Adding the token in headers
  controller.currentAuthToken(token);
  return {
    'Authorization': token,
  };
}