NtutISchoolPlusService constructor

NtutISchoolPlusService({
  1. Dio? dio,
  2. Dio? availabilityDio,
})

dio permits deterministic protocol tests without contacting iSchool+.

Implementation

NtutISchoolPlusService({Dio? dio, Dio? availabilityDio}) {
  _iSchoolPlusDio = (dio ?? createDio())
    ..options.baseUrl = 'https://istudy.ntut.edu.tw/learn/'
    ..options.connectTimeout = _requestTimeout
    ..options.sendTimeout = _requestTimeout
    ..options.receiveTimeout = _requestTimeout
    ..interceptors.insert(0, InvalidCookieFilter()) // Prepend cookie filter
    ..interceptors.add(
      _SessionCheckInterceptor(
        onSessionExpired: () => _selectedInternalId = null,
      ),
    )
    ..transformer = PlainTextTransformer();
  _availabilityDio = (availabilityDio ?? createDio(useCookies: false))
    ..options.connectTimeout = _availabilityTimeout
    ..options.sendTimeout = _availabilityTimeout
    ..options.receiveTimeout = _availabilityTimeout;
}