Skip to content

Commit 504cd41

Browse files
leandroBorgesFerreiraLeandro Ferreira
andauthored
Mobile auth fix (#527)
* Mobile auth fix * taking token correctly * ktlint - code clean --------- Co-authored-by: Leandro Ferreira <[email protected]>
1 parent 170aeca commit 504cd41

File tree

12 files changed

+47
-18
lines changed

12 files changed

+47
-18
lines changed

application/core/auth_core/src/androidMain/kotlin/io/writeopia/auth/core/repository/RoomAuthRepository.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class RoomAuthRepository(
1313
private val tokenCommonDao: TokenCommonDao,
1414
private val workspaceCommonDao: WorkspaceCommonDao
1515
) : AuthRepository {
16-
override suspend fun getUser(): WriteopiaUser = userDao.selectCurrentUser()
16+
override suspend fun getUser(): WriteopiaUser = userDao.selectedCurrentUser()
1717

1818
override suspend fun isLoggedIn(): Boolean = getUser().id != WriteopiaUser.DISCONNECTED
1919

@@ -47,6 +47,10 @@ class RoomAuthRepository(
4747
}
4848

4949
override suspend fun unselectAllWorkspaces() {
50+
workspaceCommonDao.unselectAllWorkspaces()
51+
}
5052

53+
override suspend fun unselectAllUsers() {
54+
userDao.unselectAllUsers()
5155
}
5256
}

application/core/auth_core/src/commonMain/kotlin/io/writeopia/auth/core/manager/AuthRepository.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,6 @@ interface AuthRepository : UserRepository {
3434
suspend fun saveWorkspace(workspace: Workspace)
3535

3636
suspend fun unselectAllWorkspaces()
37+
38+
suspend fun unselectAllUsers()
3739
}

application/core/auth_core/src/commonMain/kotlin/io/writeopia/auth/core/manager/SqlDelightAuthRepository.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,13 @@ internal class SqlDelightAuthRepository(
3939
}
4040

4141
override suspend fun saveUser(user: WriteopiaUser, selected: Boolean) {
42-
writeopiaDb?.writeopiaUserEntityQueries?.run {
43-
unselectAllUsers()
44-
insertUser(
45-
id = user.id,
46-
name = user.name,
47-
email = user.email,
48-
selected = selected.toLong(),
49-
tier = user.tier.tierName()
50-
)
51-
}
42+
writeopiaDb?.writeopiaUserEntityQueries?.insertUser(
43+
id = user.id,
44+
name = user.name,
45+
email = user.email,
46+
selected = selected.toLong(),
47+
tier = user.tier.tierName()
48+
)
5249
}
5350

5451
override suspend fun getAuthToken(): String? =
@@ -96,4 +93,8 @@ internal class SqlDelightAuthRepository(
9693
override suspend fun unselectAllWorkspaces() {
9794
writeopiaDb?.workspaceEntityQueries?.unselectAll()
9895
}
96+
97+
override suspend fun unselectAllUsers() {
98+
writeopiaDb?.writeopiaUserEntityQueries?.unselectAllUsers()
99+
}
99100
}

application/core/persistence_room/src/commonMain/kotlin/io/writeopia/persistence/room/data/daos/TokenDao.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.writeopia.persistence.room.data.daos
22

33
import androidx.room.Dao
4+
import androidx.room.Insert
5+
import androidx.room.OnConflictStrategy
46
import androidx.room.Query
57
import io.writeopia.persistence.room.data.entities.TOKEN_ENTITY
68
import io.writeopia.persistence.room.data.entities.TokenEntity
@@ -11,6 +13,6 @@ interface TokenDao {
1113
@Query("SELECT * FROM $TOKEN_ENTITY WHERE user_id = :userId")
1214
suspend fun getTokenByUserId(userId: String): TokenEntity?
1315

14-
@Query("INSERT INTO $TOKEN_ENTITY (user_id, token) VALUES (:userId, :token)")
15-
suspend fun insertToken(userId: String, token: String)
16+
@Insert(onConflict = OnConflictStrategy.REPLACE)
17+
suspend fun insertToken(tokenEntity: TokenEntity)
1618
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package io.writeopia.persistence.room.data.daos
22

33
import io.writeopia.common.utils.persistence.daos.TokenCommonDao
4+
import io.writeopia.persistence.room.data.entities.TokenEntity
45

56
class TokenDaoDelegator(private val tokenDao: TokenDao): TokenCommonDao {
67
override suspend fun getTokenByUserId(userId: String): String? =
78
tokenDao.getTokenByUserId(userId)?.token
89

910
override suspend fun saveToken(token: String, userId: String) {
10-
tokenDao.insertToken(userId, token)
11+
tokenDao.insertToken(TokenEntity(userId, token))
1112
}
1213
}

application/core/persistence_room/src/commonMain/kotlin/io/writeopia/persistence/room/data/daos/UserDao.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@ interface UserDao {
2121

2222
@Query("SELECT * FROM $USER_ENTITY WHERE selected = 1")
2323
suspend fun getCurrentUser(): UserEntity?
24+
25+
@Query("UPDATE $USER_ENTITY SET selected = 0")
26+
suspend fun unselectAllUsers()
2427
}

application/core/persistence_room/src/commonMain/kotlin/io/writeopia/persistence/room/data/daos/UserDaoDelegator.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ class UserDaoDelegator(private val delegate: UserDao): UserCommonDao {
2323
}
2424
}
2525

26-
override suspend fun selectCurrentUser(): WriteopiaUser =
26+
override suspend fun selectedCurrentUser(): WriteopiaUser =
2727
delegate.getCurrentUser()?.toModel()?.first ?: WriteopiaUser.disconnectedUser()
28+
29+
override suspend fun unselectAllUsers() {
30+
delegate.unselectAllUsers()
31+
}
2832
}

application/core/persistence_room/src/commonMain/kotlin/io/writeopia/persistence/room/data/daos/WorkspaceDao.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ interface WorkspaceDao {
1313
suspend fun getWorkspaceById(id: String): WorkspaceEntity?
1414

1515
@Query("SELECT * FROM workspace_entity WHERE selected = 1 LIMIT 1")
16-
suspend fun selectCurrentWorkspace(): WorkspaceEntity?
16+
suspend fun currentWorkspace(): WorkspaceEntity?
1717

1818
@Insert(onConflict = OnConflictStrategy.REPLACE)
1919
suspend fun insert(workspace: WorkspaceEntity)
20+
21+
@Query("UPDATE workspace_entity SET selected = 0")
22+
suspend fun unselectAllWorkspaces()
2023
}

application/core/persistence_room/src/commonMain/kotlin/io/writeopia/persistence/room/data/daos/WorkspaceDaoDelegator.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,9 @@ class WorkspaceDaoDelegator(private val workspaceDao: WorkspaceDao): WorkspaceCo
2222
}
2323

2424
override suspend fun selectCurrentWorkspace(): Workspace? =
25-
workspaceDao.selectCurrentWorkspace()?.toDomain()
25+
workspaceDao.currentWorkspace()?.toDomain()
26+
27+
override suspend fun unselectAllWorkspaces() {
28+
workspaceDao.unselectAllWorkspaces()
29+
}
2630
}

application/core/utils/src/commonMain/kotlin/io/writeopia/common/utils/persistence/daos/UserCommonDao.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ interface UserCommonDao {
1010

1111
suspend fun deleteUser(userId: String)
1212

13-
suspend fun selectCurrentUser(): WriteopiaUser
13+
suspend fun selectedCurrentUser(): WriteopiaUser
14+
15+
suspend fun unselectAllUsers()
1416
}

0 commit comments

Comments
 (0)