saveCASSession method

Future<bool> saveCASSession(
  1. List<(String, String)> cookiesToSave
)

Fonction sauvegardant la session CAS dans le secureStorage Prends une liste de cookie à sauvegarder Retourne vrai si la session a été sauvegardée correctement

Implementation

Future<bool> saveCASSession(List<(String,String)> cookiesToSave) async {
  String debugHeader = saveCasSessionDebugHeader;
  String errorMessage = "FALSE RETURN";
  cookiesToSave.add(("TGC","casCookie"));
  if (sessionDate == null || secureStorage == null){
    logger("$debugHeader - $errorMessage : Either session date was null or the secure storage wasn't set");
    logger("Sessiondate ${sessionDate?.day} | secureStorage $secureStorage");
    return false;
  }
  if (!_sessionStatus){
    logger("$debugHeader - $errorMessage : Session wasn't initiated correctly");
    return false;
  }
  if (DateTime.now().difference(sessionDate!).inMinutes > 30){
    logger("$debugHeader - $errorMessage :  Session was too old ${DateTime.now().difference(sessionDate!).inMinutes}");
    return false;
  }
  if (!secureStorage!.getSecureStorageStatus()){
    logger("$debugHeader - $errorMessage : Secure storage wasn't set properly");
    logger("$debugHeader - $errorMessage : Here is all the data ${secureStorage!.getSecureStorageStatus()}");
    return false;
  }
  List<cStore.Cookie> cookiesJar = session.cookieStore.cookies;
  secureStorage!.setValue("sessionDate", DateFormat("dd/MM/yyyy-HH:mm").format(sessionDate!));
  for ((String,String) i in cookiesToSave){
    Iterable<cStore.Cookie> search =  cookiesJar.where((e) => e.name == i[0]);
    if (search.isEmpty){
      logger("$debugHeader - $errorMessage : Value researched wasn't found in the cookie");
      return false;
    }
    secureStorage!.setValue(i[1], search.first.value);
  }

  bool dumpResult = await secureStorage!.dump();
  return dumpResult;
}