enableCourse method

Future<void> enableCourse(
  1. MoodleCourse course, {
  2. required bool enabled,
})

Enables or disables the given course.

Implementation

Future<void> enableCourse(MoodleCourse course, {required bool enabled}) async {
  if (!state.hasData) {
    log('Cannot enable course: No data available.');

    return;
  }

  final courses = state.requireData;

  final index = courses.indexWhere((element) => element.id == course.id);

  if (index == -1) {
    log('Cannot enable course: Course not found.');

    return;
  }

  final updated = courses[index].copyWith(enabled: enabled);

  final updatedCourses = List<MoodleCourse>.from(courses)..[index] = updated;

  emit(AsyncValue.data(updatedCourses));

  await updateCourse(updated);

  await captureEvent('course_enabled', properties: {'id': course.id, 'enabled': enabled});
}