implemented user service (no auth!)

This commit is contained in:
2025-01-01 18:33:53 +00:00
parent 0ded723bb9
commit 8559b1c44e
34 changed files with 1437 additions and 158 deletions
@@ -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();
}
}