import '../webuntis/webuntisError.dart'; import 'app_exception.dart'; class WebuntisException extends AppException { final WebuntisError source; WebuntisException(this.source) : super( userMessage: _mapMessage(source), technicalDetails: 'WebUntis (${source.code}): ${source.message}', allowRetry: true, ); static String _mapMessage(WebuntisError e) { switch (e.code) { case -8504: case -8502: return 'WebUntis-Anmeldung abgelaufen. Bitte erneut anmelden.'; case -8520: return 'Bitte melde dich erneut an.'; case -7004: return 'Für diesen Zeitraum sind keine Stundenplandaten verfügbar.'; case -32601: return 'WebUntis kennt diese Anfrage nicht. Bitte App aktualisieren.'; default: return e.message.isNotEmpty ? 'WebUntis: ${e.message}' : 'WebUntis konnte die Anfrage nicht bearbeiten (Code ${e.code}).'; } } }