mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 16:42:24 +01:00
fix(api): marking already read announcement as read would return error 500
This commit is contained in:
parent
1ab46a7fc6
commit
8cf2403147
2 changed files with 23 additions and 2 deletions
|
|
@ -8,7 +8,6 @@ import org.gotson.komga.domain.model.KomgaUser
|
|||
import org.gotson.komga.domain.model.UserRoles
|
||||
import org.gotson.komga.domain.persistence.KomgaUserRepository
|
||||
import org.gotson.komga.jooq.main.Tables
|
||||
import org.gotson.komga.jooq.main.tables.records.AnnouncementsReadRecord
|
||||
import org.gotson.komga.jooq.main.tables.records.UserApiKeyRecord
|
||||
import org.gotson.komga.language.toCurrentTimeZone
|
||||
import org.jooq.DSLContext
|
||||
|
|
@ -172,7 +171,12 @@ class KomgaUserDao(
|
|||
user: KomgaUser,
|
||||
announcementIds: Set<String>,
|
||||
) {
|
||||
dsl.batchStore(announcementIds.map { AnnouncementsReadRecord(user.id, it) }).execute()
|
||||
dsl
|
||||
.batch(
|
||||
announcementIds.map {
|
||||
dsl.insertInto(ar).values(user.id, it).onDuplicateKeyIgnore()
|
||||
},
|
||||
).execute()
|
||||
}
|
||||
|
||||
private fun insertRoles(user: KomgaUser) {
|
||||
|
|
|
|||
|
|
@ -216,4 +216,21 @@ class KomgaUserDaoTest(
|
|||
assertThat(found?.email).isEqualTo("user1@example.org")
|
||||
assertThat(notFound).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given user when saving announcement as read then it works`() {
|
||||
val user = KomgaUser("user1@example.org", "p")
|
||||
komgaUserDao.insert(user)
|
||||
|
||||
assertThat(komgaUserDao.findAnnouncementIdsReadByUserId(user.id)).isEmpty()
|
||||
|
||||
komgaUserDao.saveAnnouncementIdsRead(user, setOf("1"))
|
||||
assertThat(komgaUserDao.findAnnouncementIdsReadByUserId(user.id)).containsExactlyInAnyOrder("1")
|
||||
|
||||
komgaUserDao.saveAnnouncementIdsRead(user, setOf("2"))
|
||||
assertThat(komgaUserDao.findAnnouncementIdsReadByUserId(user.id)).containsExactlyInAnyOrder("1", "2")
|
||||
|
||||
komgaUserDao.saveAnnouncementIdsRead(user, setOf("2"))
|
||||
assertThat(komgaUserDao.findAnnouncementIdsReadByUserId(user.id)).containsExactlyInAnyOrder("1", "2")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue