updateTimeSlots method

void updateTimeSlots()

Implementation

void updateTimeSlots() async {
  Map<String, dynamic>? idField =
      timeSlotsDataSourceConfig?.parameters?.where((element) {
    return element['id'] == 'id';
  }).first;

  Map<String, String> parameters = {
    'id': idField?['value'] ?? "",
    'start': selectedDate.toUtc().toIso8601String(),
    'end': selectedDate.toUtc().add(Duration(days: 1)).toIso8601String(),
    'interval': durationInMinutes.toString(),
  };

  if (timeSlotsDataSourceConfig == null) {
    //print("No data source found...");
    return;
  }

  List<dynamic>? data = await LucyAction(
    timeSlotsDataSourceConfig?.model,
    timeSlotsDataSourceConfig?.action,
    parameters,
  ).execute();

  data?.forEach((element) {
    DateTime? from = DateTime.tryParse(element?["time"]);
    bool? availability = element?["available"] == true;
    changeTimeSlotAvailability(from, availability);
  });
  notifyListeners();
}