Application propre sans erreurs. Bonne base sur laquelle repartir de zero en cas de soucis majeurs.
This commit is contained in:
12
lib/domain/entities/user.dart
Normal file
12
lib/domain/entities/user.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class User extends Equatable {
|
||||
final String id;
|
||||
final String name;
|
||||
final String email;
|
||||
|
||||
const User({required this.id, required this.name, required this.email});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, name, email];
|
||||
}
|
||||
5
lib/domain/repositories/user_repository.dart
Normal file
5
lib/domain/repositories/user_repository.dart
Normal file
@@ -0,0 +1,5 @@
|
||||
import 'package:afterwork/domain/entities/user.dart';
|
||||
|
||||
abstract class UserRepository {
|
||||
Future<User> getUser(String id);
|
||||
}
|
||||
19
lib/domain/usecases/get_user.dart
Normal file
19
lib/domain/usecases/get_user.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:afterwork/domain/entities/user.dart';
|
||||
import 'package:afterwork/domain/repositories/user_repository.dart';
|
||||
import 'package:afterwork/core/errors/failures.dart';
|
||||
|
||||
class GetUser {
|
||||
final UserRepository repository;
|
||||
|
||||
GetUser(this.repository);
|
||||
|
||||
Future<Either<Failure, User>> call(String id) async {
|
||||
try {
|
||||
final user = await repository.getUser(id);
|
||||
return Right(user);
|
||||
} catch (e) {
|
||||
return Left(ServerFailure());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user