Files
MatchLiveTv/mobile/lib/shared/api_error.dart
Emiliano Frascaro bba6df52c0 Initial commit: monorepo Match Live TV.
Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 17:45:37 +02:00

33 lines
858 B
Dart

class ApiException implements Exception {
ApiException({
required this.message,
this.statusCode,
this.errorCode,
this.billingUrl,
});
final String message;
final int? statusCode;
final String? errorCode;
final String? billingUrl;
bool get isPremiumRequired => errorCode == 'premium_required';
@override
String toString() => message;
static ApiException? fromDio(dynamic error) {
// ignore: avoid_dynamic_calls
final response = error.response;
if (response == null) return null;
final data = response.data;
if (data is! Map<String, dynamic>) return null;
return ApiException(
message: data['error'] as String? ?? 'Errore di rete',
statusCode: response.statusCode as int?,
errorCode: data['error_code'] as String?,
billingUrl: data['billing_url'] as String?,
);
}
}