1
1
package dev.aungkyawpaing.ccdroidx.data
2
2
3
- import com.squareup.sqldelight.runtime.coroutines.asFlow
4
- import com.squareup.sqldelight.runtime.coroutines.mapToList
5
- import com.squareup.sqldelight.runtime.coroutines.mapToOne
6
- import dev.aungkyawpaing.ccdroidx.CCDroidXDb
7
3
import dev.aungkyawpaing.ccdroidx.common.Authentication
8
4
import dev.aungkyawpaing.ccdroidx.common.Project
9
5
import dev.aungkyawpaing.ccdroidx.common.coroutine.DispatcherProvider
10
6
import dev.aungkyawpaing.ccdroidx.data.api.FetchProject
7
+ import dev.aungkyawpaing.ccdroidx.data.db.ProjectTableDao
11
8
import dev.aungkyawpaing.ccdroidx.data.db.ProjectTableToProjectMapper
12
9
import kotlinx.coroutines.flow.Flow
13
10
import kotlinx.coroutines.flow.map
@@ -16,7 +13,7 @@ import javax.inject.Inject
16
13
17
14
class ProjectRepo @Inject constructor(
18
15
private val fetchProject : FetchProject ,
19
- private val db : CCDroidXDb ,
16
+ private val projectTableDao : ProjectTableDao ,
20
17
private val cryptography : Cryptography ,
21
18
private val projectTableToProjectMapper : ProjectTableToProjectMapper ,
22
19
private val dispatcherProvider : DispatcherProvider
@@ -52,7 +49,7 @@ class ProjectRepo @Inject constructor(
52
49
suspend fun saveProject (project : Project ) {
53
50
withContext(dispatcherProvider.io()) {
54
51
if (project.id == - 1L ) {
55
- db.projectTableQueries .insert(
52
+ projectTableDao .insert(
56
53
name = project.name,
57
54
activity = project.activity,
58
55
lastBuildStatus = project.lastBuildStatus,
@@ -65,7 +62,7 @@ class ProjectRepo @Inject constructor(
65
62
password = if (project.authentication != null ) cryptography.encrypt(project.authentication!! .password) else null
66
63
)
67
64
} else {
68
- db.projectTableQueries .update(
65
+ projectTableDao .update(
69
66
id = project.id,
70
67
name = project.name,
71
68
activity = project.activity,
@@ -83,37 +80,32 @@ class ProjectRepo @Inject constructor(
83
80
}
84
81
85
82
fun getAll (): Flow <List <Project >> {
86
- return db.projectTableQueries.selectAll()
87
- .asFlow()
88
- .mapToList(dispatcherProvider.default())
83
+ return projectTableDao.selectAll()
89
84
.map { projectTables ->
90
85
projectTables.map(projectTableToProjectMapper::mapProjectTable)
91
86
}
92
87
}
93
88
94
89
95
- fun getById (projectId : Long ): Flow <Project > {
96
- return db.projectTableQueries.selectById(projectId)
97
- .asFlow()
98
- .mapToOne(dispatcherProvider.default())
99
- .map(projectTableToProjectMapper::mapProjectTable)
90
+ fun getById (projectId : Long ): Project {
91
+ return projectTableToProjectMapper.mapProjectTable(projectTableDao.selectById(projectId))
100
92
}
101
93
102
94
suspend fun delete (projectId : Long ) {
103
95
return withContext(dispatcherProvider.io()) {
104
- db.projectTableQueries .delete(projectId)
96
+ projectTableDao .delete(projectId)
105
97
}
106
98
}
107
99
108
100
suspend fun unmuteProject (projectId : Long ) {
109
101
withContext(dispatcherProvider.io()) {
110
- db.projectTableQueries .updateMute(false , null , projectId)
102
+ projectTableDao .updateMute(false , null , projectId)
111
103
}
112
104
}
113
105
114
106
suspend fun muteProject (projectId : Long ) {
115
107
withContext(dispatcherProvider.io()) {
116
- db.projectTableQueries .updateMute(true , null , projectId)
108
+ projectTableDao .updateMute(true , null , projectId)
117
109
}
118
110
}
119
111
0 commit comments