/// 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).', ); }