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.model.UserRoles
|
||||||
import org.gotson.komga.domain.persistence.KomgaUserRepository
|
import org.gotson.komga.domain.persistence.KomgaUserRepository
|
||||||
import org.gotson.komga.jooq.main.Tables
|
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.jooq.main.tables.records.UserApiKeyRecord
|
||||||
import org.gotson.komga.language.toCurrentTimeZone
|
import org.gotson.komga.language.toCurrentTimeZone
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -172,7 +171,12 @@ class KomgaUserDao(
|
||||||
user: KomgaUser,
|
user: KomgaUser,
|
||||||
announcementIds: Set<String>,
|
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) {
|
private fun insertRoles(user: KomgaUser) {
|
||||||
|
|
|
||||||
|
|
@ -216,4 +216,21 @@ class KomgaUserDaoTest(
|
||||||
assertThat(found?.email).isEqualTo("user1@example.org")
|
assertThat(found?.email).isEqualTo("user1@example.org")
|
||||||
assertThat(notFound).isNull()
|
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