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