saveCASSession method
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;
}