implemented user service (no auth!)
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import 'package:backend_dart/application/repository/user_repository_impl.dart';
|
||||
import 'package:backend_dart/domain/repository/user_repository.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/database_provider.dart';
|
||||
import 'package:riverpod/riverpod.dart';
|
||||
|
||||
final userRepoProvider = Provider<UserRepository>((ref) {
|
||||
final database = ref.read(databaseProvider);
|
||||
return UserRepositoryImpl(database);
|
||||
});
|
||||
@@ -0,0 +1,45 @@
|
||||
import 'package:backend_dart/domain/entities/user.dart';
|
||||
import 'package:backend_dart/domain/interface/database.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/domain/repository/user_repository.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
|
||||
class UserRepositoryImpl implements UserRepository {
|
||||
final IDatabase database;
|
||||
UserRepositoryImpl(this.database);
|
||||
|
||||
@override
|
||||
TaskEither<IError, User> create(User user) {
|
||||
return database.users
|
||||
.generateId()
|
||||
.map(
|
||||
(id) => user.copyWith(id: id),
|
||||
)
|
||||
.flatMap(database.users.create);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, User> findByEmail(String email) {
|
||||
return database.users.findByEmail(email);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, User> findById(String id) {
|
||||
return database.users.findById(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, User> update(User user) {
|
||||
return database.users.update(user);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, void> delete(String id) {
|
||||
return database.users.delete(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<User>> findAll() {
|
||||
return database.users.findAll();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user