mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-09 16:11:20 +02:00
parent
405e170750
commit
dc3193e2dc
17 changed files with 127 additions and 61 deletions
|
|
@ -106,9 +106,21 @@ class ItemPlaybackRepository
|
|||
saveItemPlayback(toSave)
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the [ItemPlayback] into the database, returning the same object with the rowId updated if needed
|
||||
*/
|
||||
suspend fun saveItemPlayback(itemPlayback: ItemPlayback): ItemPlayback {
|
||||
val rowId = itemPlaybackDao.saveItem(itemPlayback)
|
||||
return itemPlayback.copy(rowId = rowId)
|
||||
val toSave =
|
||||
if (itemPlayback.userId < 0) {
|
||||
val userRowId =
|
||||
serverRepository.currentUser?.rowId?.takeIf { it >= 0 }
|
||||
?: throw IllegalStateException("Trying to save an ItemPlayback without a user, but there is no current user")
|
||||
itemPlayback.copy(userId = userRowId)
|
||||
} else {
|
||||
itemPlayback
|
||||
}
|
||||
val id = itemPlaybackDao.saveItem(toSave)
|
||||
return toSave.copy(rowId = id)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,10 +84,23 @@ interface JellyfinServerDao {
|
|||
fun addOrUpdateUser(user: JellyfinUser) {
|
||||
val result = addUser(user)
|
||||
if (result == -1L) {
|
||||
updateUser(user)
|
||||
val toSave =
|
||||
if (user.rowId <= 0) {
|
||||
val temp = getUser(user.serverId, user.id)!!
|
||||
user.copy(rowId = temp.rowId)
|
||||
} else {
|
||||
user
|
||||
}
|
||||
updateUser(toSave)
|
||||
}
|
||||
}
|
||||
|
||||
@Query("SELECT * FROM users WHERE serverId = :serverId AND id = :userId")
|
||||
fun getUser(
|
||||
serverId: UUID,
|
||||
userId: UUID,
|
||||
): JellyfinUser?
|
||||
|
||||
@Query("DELETE FROM servers WHERE id = :serverId")
|
||||
fun deleteServer(serverId: UUID)
|
||||
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ class ServerRepository
|
|||
id = userDto.id,
|
||||
name = userDto.name,
|
||||
)
|
||||
if (updatedUser.rowId <= 0) {
|
||||
}
|
||||
serverDao.addOrUpdateServer(updatedServer)
|
||||
serverDao.addOrUpdateUser(updatedUser)
|
||||
userPreferencesDataStore.updateData {
|
||||
|
|
@ -119,7 +121,6 @@ class ServerRepository
|
|||
serverDao.getServer(serverId)
|
||||
}
|
||||
if (serverAndUsers != null) {
|
||||
_currentServer = serverAndUsers.server
|
||||
val user = serverAndUsers.users.firstOrNull { it.id == userId }
|
||||
if (user != null) {
|
||||
changeUser(serverAndUsers.server, user)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue