Skip to content

Commit 2ba0e9b

Browse files
authored
Merge pull request #40 from janewaitara/feat_code_cleanup
Feat code cleanup
2 parents 0c62ead + d002b58 commit 2ba0e9b

25 files changed

+472
-508
lines changed

app/src/main/java/com/mumbicodes/projectie/data/db/MilestonesDao.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.mumbicodes.projectie.data.db
22

3-
import androidx.room.*
3+
import androidx.room.Dao
4+
import androidx.room.Delete
5+
import androidx.room.Query
6+
import androidx.room.Upsert
47
import com.mumbicodes.projectie.domain.model.Milestone
58
import com.mumbicodes.projectie.domain.relations.MilestoneWithTasks
69
import kotlinx.coroutines.flow.Flow
710

811
@Dao
912
interface MilestonesDao {
1013

11-
@Insert(onConflict = OnConflictStrategy.REPLACE)
12-
suspend fun insertMilestone(milestone: Milestone)
14+
@Upsert
15+
suspend fun insertOrUpdateMilestone(milestone: Milestone)
1316

1417
/** Fetch */
1518
@Query("SELECT * from milestones_table WHERE milestoneId = :milestoneId")

app/src/main/java/com/mumbicodes/projectie/data/db/TasksDao.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@ package com.mumbicodes.projectie.data.db
22

33
import androidx.room.Dao
44
import androidx.room.Delete
5-
import androidx.room.Insert
6-
import androidx.room.OnConflictStrategy
5+
import androidx.room.Upsert
76
import com.mumbicodes.projectie.domain.model.Task
87

98
@Dao
109
interface TasksDao {
1110

12-
@Insert(onConflict = OnConflictStrategy.REPLACE)
13-
suspend fun insertTask(tasks: List<Task>)
11+
@Upsert
12+
suspend fun insertOrUpdateTask(tasks: List<Task>)
1413

1514
@Delete
1615
suspend fun deleteTask(task: Task)

app/src/main/java/com/mumbicodes/projectie/data/repository/MilestonesRepositoryImpl.kt

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,20 @@ import com.mumbicodes.projectie.domain.model.DataResult
77
import com.mumbicodes.projectie.domain.model.Milestone
88
import com.mumbicodes.projectie.domain.relations.MilestoneWithTasks
99
import com.mumbicodes.projectie.domain.repository.MilestonesRepository
10-
import com.mumbicodes.projectie.domain.util.AllMilestonesOrder
1110
import kotlinx.coroutines.flow.Flow
12-
import kotlinx.coroutines.flow.map
1311

1412
class MilestonesRepositoryImpl(
1513
private val milestonesDao: MilestonesDao,
1614
) : MilestonesRepository {
1715

18-
override suspend fun insertMilestone(milestone: Milestone) {
19-
milestonesDao.insertMilestone(milestone)
16+
override suspend fun insertOrUpdateMilestone(milestone: Milestone) {
17+
milestonesDao.insertOrUpdateMilestone(milestone)
2018
}
2119

22-
override suspend fun getMilestoneByIdWithTasks(milestoneId: Int): DataResult<Flow<MilestoneWithTasks?>> = safeTransaction {
23-
milestonesDao.getMilestoneByIdWithTasks(milestoneId)
24-
}.toDataResult()
20+
override suspend fun getMilestoneByIdWithTasks(milestoneId: Int): DataResult<Flow<MilestoneWithTasks?>> =
21+
safeTransaction {
22+
milestonesDao.getMilestoneByIdWithTasks(milestoneId)
23+
}.toDataResult()
2524

2625
override suspend fun getAllMilestonesBasedOnProjIdAndStatus(
2726
projectId: Int,
@@ -30,19 +29,8 @@ class MilestonesRepositoryImpl(
3029
milestonesDao.getAllMilestonesBasedOnProjIdAndStatus(projectId)
3130
}.toDataResult()
3231

33-
override suspend fun getAllMilestones(milestonesOrder: AllMilestonesOrder): DataResult<Flow<List<MilestoneWithTasks>>> =
34-
safeTransaction {
35-
milestonesDao.getAllMilestones().map { milestonesWithTasks ->
36-
when (milestonesOrder) {
37-
is AllMilestonesOrder.MostUrgent -> milestonesWithTasks.sortedBy {
38-
it.milestone.milestoneEndDate
39-
}
40-
is AllMilestonesOrder.LeastUrgent -> milestonesWithTasks.sortedByDescending {
41-
it.milestone.milestoneEndDate
42-
}
43-
}
44-
}
45-
}.toDataResult()
32+
override suspend fun getAllMilestones(): DataResult<Flow<List<MilestoneWithTasks>>> =
33+
safeTransaction { milestonesDao.getAllMilestones() }.toDataResult()
4634

4735
override suspend fun deleteMilestone(milestone: Milestone) {
4836
milestonesDao.deleteMilestone(milestone)

app/src/main/java/com/mumbicodes/projectie/data/repository/ProjectsRepositoryImpl.kt

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ import com.mumbicodes.projectie.domain.model.Project
99
import com.mumbicodes.projectie.domain.model.ProjectName
1010
import com.mumbicodes.projectie.domain.relations.ProjectWithMilestones
1111
import com.mumbicodes.projectie.domain.repository.ProjectsRepository
12-
import com.mumbicodes.projectie.domain.util.OrderType
13-
import com.mumbicodes.projectie.domain.util.ProjectsOrder
1412
import kotlinx.coroutines.flow.Flow
15-
import kotlinx.coroutines.flow.map
1613

1714
class ProjectsRepositoryImpl(
1815
private val projectsDao: ProjectsDao,
@@ -45,28 +42,8 @@ class ProjectsRepositoryImpl(
4542
*
4643
* By default, the order is the date added
4744
* */
48-
override suspend fun getAllProjects(projectOrder: ProjectsOrder): DataResult<Flow<List<Project>>> =
49-
safeTransaction {
50-
projectsDao.getAllProjects().map { projects ->
51-
when (projectOrder.orderType) {
52-
is OrderType.Ascending -> {
53-
when (projectOrder) {
54-
is ProjectsOrder.Name -> projects.sortedBy { it.projectName.lowercase() }
55-
is ProjectsOrder.Deadline -> projects.sortedBy { it.projectDeadline }
56-
is ProjectsOrder.DateAdded -> projects.sortedBy { it.timeStamp }
57-
}
58-
}
59-
60-
is OrderType.Descending -> {
61-
when (projectOrder) {
62-
is ProjectsOrder.Name -> projects.sortedByDescending { it.projectName.lowercase() }
63-
is ProjectsOrder.Deadline -> projects.sortedByDescending { it.projectDeadline }
64-
is ProjectsOrder.DateAdded -> projects.sortedByDescending { it.timeStamp }
65-
}
66-
}
67-
}
68-
}
69-
}.toDataResult()
45+
override suspend fun getAllProjects(): DataResult<Flow<List<Project>>> =
46+
safeTransaction { projectsDao.getAllProjects() }.toDataResult()
7047

7148
override suspend fun getProjectNameAndId(): DataResult<Flow<List<ProjectName>>> =
7249
safeTransaction { projectsDao.getProjectNameAndId() }.toDataResult()

app/src/main/java/com/mumbicodes/projectie/data/repository/TaskRepositoryImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import com.mumbicodes.projectie.domain.model.Task
55
import com.mumbicodes.projectie.domain.repository.TasksRepository
66

77
class TaskRepositoryImpl(private val tasksDao: TasksDao) : TasksRepository {
8-
override suspend fun insertTask(tasks: List<Task>) {
9-
tasksDao.insertTask(tasks)
8+
override suspend fun insertOrUpdateTask(tasks: List<Task>) {
9+
tasksDao.insertOrUpdateTask(tasks)
1010
}
1111

1212
override suspend fun deleteTask(task: Task) {

app/src/main/java/com/mumbicodes/projectie/di/UseCaseModule.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import com.mumbicodes.projectie.domain.use_case.onBoarding.OnBoardingUseCases
1515
import com.mumbicodes.projectie.domain.use_case.onBoarding.ReadOnBoardingStateUseCase
1616
import com.mumbicodes.projectie.domain.use_case.onBoarding.SaveOnBoardingStateUseCase
1717
import com.mumbicodes.projectie.domain.use_case.projects.*
18-
import com.mumbicodes.projectie.domain.use_case.tasks.AddTasksUseCase
1918
import com.mumbicodes.projectie.domain.use_case.tasks.DeleteTaskUseCase
19+
import com.mumbicodes.projectie.domain.use_case.tasks.InsertOrUpdateTasksUseCase
2020
import com.mumbicodes.projectie.domain.use_case.tasks.TasksUseCases
2121
import com.mumbicodes.projectie.domain.use_case.tasks.TransformTasksUseCase
2222
import com.mumbicodes.projectie.domain.use_case.workers.CancelWorkerUseCase
@@ -62,7 +62,7 @@ object UseCaseModule {
6262
app: Application,
6363
): MilestonesUseCases {
6464
return MilestonesUseCases(
65-
addMilestoneUseCase = AddMilestoneUseCase(repository),
65+
insertOrUpdateMilestoneUseCase = InsertOrUpdateMilestoneUseCase(repository),
6666
getMilestoneByIdWithTasksUseCase = GetMilestoneByIdWithTasksUseCase(repository),
6767
getMilestonesUseCase = GetMilestonesUseCase(repository),
6868
deleteMilestoneUseCase = DeleteMilestoneUseCase(repository),
@@ -79,7 +79,7 @@ object UseCaseModule {
7979
repository: TasksRepository,
8080
): TasksUseCases {
8181
return TasksUseCases(
82-
addTasksUseCase = AddTasksUseCase(repository),
82+
insertOrUpdateTasksUseCase = InsertOrUpdateTasksUseCase(repository),
8383
deleteTaskUseCase = DeleteTaskUseCase(repository),
8484
transformTasksUseCase = TransformTasksUseCase(),
8585
)

app/src/main/java/com/mumbicodes/projectie/domain/repository/MilestonesRepository.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ package com.mumbicodes.projectie.domain.repository
33
import com.mumbicodes.projectie.domain.model.DataResult
44
import com.mumbicodes.projectie.domain.model.Milestone
55
import com.mumbicodes.projectie.domain.relations.MilestoneWithTasks
6-
import com.mumbicodes.projectie.domain.util.AllMilestonesOrder
76
import kotlinx.coroutines.flow.Flow
87

98
interface MilestonesRepository {
109

11-
suspend fun insertMilestone(milestone: Milestone)
10+
suspend fun insertOrUpdateMilestone(milestone: Milestone)
1211

1312
suspend fun getMilestoneByIdWithTasks(milestoneId: Int): DataResult <Flow<MilestoneWithTasks?>>
1413

@@ -17,7 +16,7 @@ interface MilestonesRepository {
1716
status: String?,
1817
): DataResult<List<Milestone>>
1918

20-
suspend fun getAllMilestones(milestonesOrder: AllMilestonesOrder): DataResult<Flow<List<MilestoneWithTasks>>>
19+
suspend fun getAllMilestones(): DataResult<Flow<List<MilestoneWithTasks>>>
2120

2221
suspend fun deleteMilestone(milestone: Milestone)
2322

app/src/main/java/com/mumbicodes/projectie/domain/repository/ProjectsRepository.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.mumbicodes.projectie.domain.model.DataResult
44
import com.mumbicodes.projectie.domain.model.Project
55
import com.mumbicodes.projectie.domain.model.ProjectName
66
import com.mumbicodes.projectie.domain.relations.ProjectWithMilestones
7-
import com.mumbicodes.projectie.domain.util.ProjectsOrder
87
import kotlinx.coroutines.flow.Flow
98

109
interface ProjectsRepository {
@@ -17,7 +16,7 @@ interface ProjectsRepository {
1716

1817
suspend fun getProjectByIdWithMilestones(projectId: Int): DataResult <Flow<ProjectWithMilestones?>>
1918

20-
suspend fun getAllProjects(projectOrder: ProjectsOrder): DataResult<Flow<List<Project>>>
19+
suspend fun getAllProjects(): DataResult<Flow<List<Project>>>
2120

2221
suspend fun getProjectNameAndId(): DataResult<Flow<List<ProjectName>>>
2322

app/src/main/java/com/mumbicodes/projectie/domain/repository/TasksRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.mumbicodes.projectie.domain.model.Task
44

55
interface TasksRepository {
66

7-
suspend fun insertTask(tasks: List<Task>)
7+
suspend fun insertOrUpdateTask(tasks: List<Task>)
88

99
suspend fun deleteTask(task: Task)
1010
}

app/src/main/java/com/mumbicodes/projectie/domain/use_case/milestones/GetAllMilestonesUseCase.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@ package com.mumbicodes.projectie.domain.use_case.milestones
33
import com.mumbicodes.projectie.domain.model.DataResult
44
import com.mumbicodes.projectie.domain.relations.MilestoneWithTasks
55
import com.mumbicodes.projectie.domain.repository.MilestonesRepository
6-
import com.mumbicodes.projectie.domain.util.AllMilestonesOrder
76
import kotlinx.coroutines.flow.Flow
87

98
class GetAllMilestonesUseCase(private val repository: MilestonesRepository) {
109

11-
suspend operator fun invoke(
12-
milestonesOrder: AllMilestonesOrder = AllMilestonesOrder.MostUrgent,
13-
): DataResult<Flow<List<MilestoneWithTasks>>> {
14-
return repository.getAllMilestones(milestonesOrder)
10+
suspend operator fun invoke(): DataResult<Flow<List<MilestoneWithTasks>>> {
11+
return repository.getAllMilestones()
1512
}
1613
}

0 commit comments

Comments
 (0)