32 lines
976 B
Dart
32 lines
976 B
Dart
import '../webuntis/webuntis_error.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}).';
|
|
}
|
|
}
|
|
}
|