fetchICSFile static method
Future<Map<String, Map<String, dynamic> > >
fetchICSFile()
Implementation
static Future<Map<String, Map<String, dynamic>>> fetchICSFile(
String? url,
String timeZone,
Function(CometChatException) onError,
) async {
Map<String, Map<String, dynamic>> blockedDates = {};
if (url != null && url.isNotEmpty) {
try {
final response = await http.get(Uri.parse(url));
if (response.statusCode == 200) {
final icsContent = response.body;
final events = parseICS(icsContent, timeZone);
blockedDates = events;
} else {
onError(
CometChatException(
"ERR",
"FAILED_TO_LOAD_ICS_FILE",
"Failed to load ICS file: ${response.statusCode}",
),
);
if (kDebugMode) {
print('Failed to load ICS file: ${response.statusCode}');
}
}
} catch (e) {
onError(
CometChatException(
"ERR",
"UNABLE_TO_PARSE_ICS_FILE",
"Unable to parse ICS file: $e",
),
);
if (kDebugMode) {
print('Error: caught while parsing icsFile $e');
}
}
} else {
onError(
CometChatException(
"ERR",
"INVALID_API_ENDPOINT",
"the api endpoint is either null of empty",
),
);
}
return blockedDates;
}