48 lines
1.4 KiB
Dart
48 lines
1.4 KiB
Dart
/// Erreurs métier pour les appels API 42.
|
||
sealed class IntraApiException implements Exception {
|
||
const IntraApiException(this.message);
|
||
final String message;
|
||
|
||
@override
|
||
String toString() => message;
|
||
}
|
||
|
||
class IntraNotAuthenticatedException extends IntraApiException {
|
||
const IntraNotAuthenticatedException()
|
||
: super('Connecte-toi d’abord à l’API 42');
|
||
}
|
||
|
||
class IntraUserNotFoundException extends IntraApiException {
|
||
const IntraUserNotFoundException()
|
||
: super('Aucun utilisateur pour ce login');
|
||
}
|
||
|
||
class IntraNetworkException extends IntraApiException {
|
||
const IntraNetworkException()
|
||
: super('Connexion impossible. Vérifie le réseau.');
|
||
}
|
||
|
||
class IntraUnauthorizedException extends IntraApiException {
|
||
const IntraUnauthorizedException()
|
||
: super('Session expirée. Reconnecte-toi à l’API 42');
|
||
}
|
||
|
||
class IntraApiErrorException extends IntraApiException {
|
||
const IntraApiErrorException(super.message);
|
||
}
|
||
|
||
class IntraRateLimitException extends IntraApiException {
|
||
const IntraRateLimitException()
|
||
: super(
|
||
'Trop de requêtes vers l’API 42. Attends quelques secondes puis réessaie.',
|
||
);
|
||
}
|
||
|
||
class IntraForbiddenException extends IntraApiException {
|
||
const IntraForbiddenException()
|
||
: super(
|
||
'Accès refusé (403). Déconnecte-toi puis reconnecte-toi '
|
||
'(scopes OAuth : public + projects sur l’app Intra).',
|
||
);
|
||
}
|