implemented other repos, services, objects ...
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import 'package:backend_dart/domain/data/database.dart';
|
||||
import 'package:backend_dart/domain/entities/project.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/domain/repository/project_repository.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
|
||||
class ProjectRepositoryImpl implements ProjectRepository {
|
||||
final IDatabase database;
|
||||
ProjectRepositoryImpl(this.database);
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> create(ProjectCreate project) {
|
||||
return database.projects
|
||||
.generateId()
|
||||
.map((id) => project.copyWith(id: id))
|
||||
.flatMap(database.projects.create);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> findById(String id) {
|
||||
return database.projects.findById(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> update(ProjectUpdate project) {
|
||||
return database.projects.update(project);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, void> delete(String id) {
|
||||
return database.projects.delete(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<Project>> findAll() {
|
||||
return database.projects.findAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import 'package:backend_dart/domain/data/database.dart';
|
||||
import 'package:backend_dart/domain/entities/project_task.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/domain/repository/project_task_repository.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
|
||||
class ProjectTaskRepositoryImpl implements ProjectTaskRepository {
|
||||
final IDatabase database;
|
||||
ProjectTaskRepositoryImpl(this.database);
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> create(ProjectTaskCreate task) {
|
||||
return database.tasks
|
||||
.generateId()
|
||||
.map((id) => task.copyWith(id: id))
|
||||
.flatMap(database.tasks.create);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> findById(String id) {
|
||||
return database.tasks.findById(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<ProjectTask>> findByProjectId(String projectId) {
|
||||
return database.tasks.findByProjectId(projectId);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> update(ProjectTaskUpdate task) {
|
||||
return database.tasks.update(task);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, void> delete(String id) {
|
||||
return database.tasks.delete(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<ProjectTask>> findAll() {
|
||||
return database.tasks.findAll();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
import 'package:backend_dart/application/repository/project_repository_impl.dart';
|
||||
import 'package:backend_dart/application/repository/project_task_repository_impl.dart';
|
||||
import 'package:backend_dart/application/repository/time_entry_repository_impl.dart';
|
||||
import 'package:backend_dart/application/repository/user_repository_impl.dart';
|
||||
import 'package:backend_dart/domain/repository/project_repository.dart';
|
||||
import 'package:backend_dart/domain/repository/project_task_repository.dart';
|
||||
import 'package:backend_dart/domain/repository/time_entry_repository.dart';
|
||||
import 'package:backend_dart/domain/repository/user_repository.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/database_provider.dart';
|
||||
import 'package:riverpod/riverpod.dart';
|
||||
@@ -7,3 +13,18 @@ final userRepoProvider = Provider<UserRepository>((ref) {
|
||||
final database = ref.read(databaseProvider);
|
||||
return UserRepositoryImpl(database);
|
||||
});
|
||||
|
||||
final projectTaskProvider = Provider<ProjectTaskRepository>((ref) {
|
||||
final database = ref.read(databaseProvider);
|
||||
return ProjectTaskRepositoryImpl(database);
|
||||
});
|
||||
|
||||
final projectProvider = Provider<ProjectRepository>((ref) {
|
||||
final database = ref.read(databaseProvider);
|
||||
return ProjectRepositoryImpl(database);
|
||||
});
|
||||
|
||||
final timeEntryProvider = Provider<TimeEntryRepository>((ref) {
|
||||
final database = ref.read(databaseProvider);
|
||||
return TimeEntryRepositoryImpl(database);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import 'package:backend_dart/domain/data/database.dart';
|
||||
import 'package:backend_dart/domain/entities/time_entry.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/domain/repository/time_entry_repository.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
|
||||
class TimeEntryRepositoryImpl implements TimeEntryRepository {
|
||||
final IDatabase database;
|
||||
TimeEntryRepositoryImpl(this.database);
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> create(TimeEntryCreate timeEntry) {
|
||||
return database.timeEntries
|
||||
.generateId()
|
||||
.map((id) => timeEntry.copyWith(id: id))
|
||||
.flatMap(database.timeEntries.create);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> findById(String id) {
|
||||
return database.timeEntries.findById(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findByUserId(String userId) {
|
||||
return database.timeEntries.findByUserId(userId);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findByProjectId(String projectId) {
|
||||
return database.timeEntries.findByProjectId(projectId);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> update(TimeEntryUpdate timeEntry) {
|
||||
return database.timeEntries.update(timeEntry);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, void> delete(String id) {
|
||||
return database.timeEntries.delete(id);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findAll() {
|
||||
return database.timeEntries.findAll();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user