mirror of
https://github.com/gotson/komga.git
synced 2025-12-20 15:34:17 +01:00
feat(sse): publish event when series is completely marked as read or unread
This commit is contained in:
parent
19e3f18cad
commit
11c5802255
4 changed files with 13 additions and 0 deletions
|
|
@ -28,6 +28,8 @@ sealed class DomainEvent : Serializable {
|
|||
|
||||
data class ReadProgressChanged(val progress: ReadProgress) : DomainEvent()
|
||||
data class ReadProgressDeleted(val progress: ReadProgress) : DomainEvent()
|
||||
data class ReadProgressSeriesChanged(val seriesId: String, val userId: String) : DomainEvent()
|
||||
data class ReadProgressSeriesDeleted(val seriesId: String, val userId: String) : DomainEvent()
|
||||
|
||||
data class ThumbnailBookAdded(val thumbnail: ThumbnailBook) : DomainEvent()
|
||||
data class ThumbnailSeriesAdded(val thumbnail: ThumbnailSeries) : DomainEvent()
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ class SeriesLifecycle(
|
|||
|
||||
readProgressRepository.save(progresses)
|
||||
progresses.forEach { eventPublisher.publishEvent(DomainEvent.ReadProgressChanged(it)) }
|
||||
eventPublisher.publishEvent(DomainEvent.ReadProgressSeriesChanged(seriesId, user.id))
|
||||
}
|
||||
|
||||
fun deleteReadProgress(seriesId: String, user: KomgaUser) {
|
||||
|
|
@ -169,6 +170,7 @@ class SeriesLifecycle(
|
|||
readProgressRepository.deleteByBookIdsAndUserId(bookIds, user.id)
|
||||
|
||||
progresses.forEach { eventPublisher.publishEvent(DomainEvent.ReadProgressDeleted(it)) }
|
||||
eventPublisher.publishEvent(DomainEvent.ReadProgressSeriesDeleted(seriesId, user.id))
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import org.gotson.komga.interfaces.sse.dto.BookSseDto
|
|||
import org.gotson.komga.interfaces.sse.dto.CollectionSseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.LibrarySseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.ReadListSseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.ReadProgressSeriesSseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.ReadProgressSseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.SeriesSseDto
|
||||
import org.gotson.komga.interfaces.sse.dto.TaskQueueSseDto
|
||||
|
|
@ -89,6 +90,8 @@ class SseController(
|
|||
|
||||
is DomainEvent.ReadProgressChanged -> emitSse("ReadProgressChanged", ReadProgressSseDto(event.progress.bookId, event.progress.userId), userIdOnly = event.progress.userId)
|
||||
is DomainEvent.ReadProgressDeleted -> emitSse("ReadProgressDeleted", ReadProgressSseDto(event.progress.bookId, event.progress.userId), userIdOnly = event.progress.userId)
|
||||
is DomainEvent.ReadProgressSeriesChanged -> emitSse("ReadProgressSeriesChanged", ReadProgressSeriesSseDto(event.seriesId, event.userId), userIdOnly = event.userId)
|
||||
is DomainEvent.ReadProgressSeriesDeleted -> emitSse("ReadProgressSeriesDeleted", ReadProgressSeriesSseDto(event.seriesId, event.userId), userIdOnly = event.userId)
|
||||
|
||||
is DomainEvent.ThumbnailBookAdded -> emitSse("ThumbnailBookAdded", ThumbnailBookSseDto(event.thumbnail.bookId, bookRepository.getSeriesIdOrNull(event.thumbnail.bookId).orEmpty()))
|
||||
is DomainEvent.ThumbnailSeriesAdded -> emitSse("ThumbnailSeriesAdded", ThumbnailSeriesSseDto(event.thumbnail.seriesId))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
package org.gotson.komga.interfaces.sse.dto
|
||||
|
||||
data class ReadProgressSeriesSseDto(
|
||||
val seriesId: String,
|
||||
val userId: String,
|
||||
)
|
||||
Loading…
Reference in a new issue