Files
2023-12-12 15:51:35 +07:00

40 lines
997 B
Dart

import 'package:equatable/equatable.dart';
import 'package:flutter_project/shared/domain/models/either.dart';
import 'package:flutter_project/shared/domain/models/response.dart';
class AppException implements Exception {
final String message;
final int statusCode;
final String identifier;
AppException({
required this.message,
required this.statusCode,
required this.identifier,
});
@override
String toString() {
return 'statusCode=$statusCode\nmessage=$message\nidentifier=$identifier';
}
}
class CacheFailureException extends Equatable implements AppException {
@override
String get identifier => 'Cache failure exception';
@override
String get message => 'Unable to save user';
@override
int get statusCode => 100;
@override
List<Object?> get props => [message, statusCode, identifier];
}
// extension
extension HttpExceptionExtension on AppException {
Left<AppException, Response> get toLeft => Left<AppException, Response>(this);
}