checkAvailability method

  1. @override
Future<void> checkAvailability()
override

Checks whether the public I-School Plus homepage is reachable without using an authenticated session.

Implementation

@override
Future<void> checkAvailability() async {
  final cancelToken = CancelToken();
  final timer = Timer(
    _availabilityTimeout,
    () => cancelToken.cancel('I-School Plus availability probe timed out'),
  );
  try {
    await Future.any([
      _availabilityDio.get<void>(
        'https://istudy.ntut.edu.tw/mooc/index.php',
        cancelToken: cancelToken,
        options: Options(responseType: .bytes),
      ),
      cancelToken.whenCancel.then((error) => throw error),
    ]);
  } finally {
    timer.cancel();
  }
}