Add a db query to get all the Sessions.
This commit is contained in:
parent
2135d75712
commit
70de1bd6a0
5 changed files with 16 additions and 1 deletions
|
|
@ -22,6 +22,7 @@ interface SessionStore {
|
|||
fun isLoggedIn(): Flow<Boolean>
|
||||
suspend fun storeData(sessionData: SessionData)
|
||||
suspend fun getSession(sessionId: String): SessionData?
|
||||
suspend fun getAllSessions(): List<SessionData>
|
||||
suspend fun getLatestSession(): SessionData?
|
||||
suspend fun removeSession(sessionId: String)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ class InMemorySessionStore : SessionStore {
|
|||
return sessionDataFlow.value.takeIf { it?.userId == sessionId }
|
||||
}
|
||||
|
||||
override suspend fun getAllSessions(): List<SessionData> {
|
||||
return listOfNotNull(sessionDataFlow.value)
|
||||
}
|
||||
|
||||
override suspend fun getLatestSession(): SessionData? {
|
||||
return sessionDataFlow.value
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ class DatabaseSessionStore @Inject constructor(
|
|||
?.toApiModel()
|
||||
}
|
||||
|
||||
override suspend fun getAllSessions(): List<SessionData> {
|
||||
return database.sessionDataQueries.selectAll()
|
||||
.executeAsList()
|
||||
.map { it.toApiModel() }
|
||||
}
|
||||
|
||||
override suspend fun removeSession(sessionId: String) {
|
||||
database.sessionDataQueries.removeSession(sessionId)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ CREATE TABLE SessionData (
|
|||
selectFirst:
|
||||
SELECT * FROM SessionData LIMIT 1;
|
||||
|
||||
selectAll:
|
||||
SELECT * FROM SessionData;
|
||||
|
||||
selectByUserId:
|
||||
SELECT * FROM SessionData WHERE userId = ?;
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ class DatabaseSessionStoreTests {
|
|||
databaseSessionStore.storeData(aSessionData.toApiModel())
|
||||
|
||||
assertThat(database.sessionDataQueries.selectFirst().executeAsOneOrNull()).isEqualTo(aSessionData)
|
||||
assertThat(database.sessionDataQueries.selectAll().executeAsList().size).isEqualTo(1)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -88,6 +89,7 @@ class DatabaseSessionStoreTests {
|
|||
val foundSession = databaseSessionStore.getSession(aSessionData.userId)?.toDbModel()
|
||||
|
||||
assertThat(foundSession).isEqualTo(aSessionData)
|
||||
assertThat(database.sessionDataQueries.selectAll().executeAsList().size).isEqualTo(2)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -107,5 +109,4 @@ class DatabaseSessionStoreTests {
|
|||
|
||||
assertThat(database.sessionDataQueries.selectByUserId(aSessionData.userId).executeAsOneOrNull()).isNull()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue