mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-03 19:04:39 -05:00
Fix manga/source and manga/chapters for graphql (#548)
This commit is contained in:
@@ -18,7 +18,6 @@ import suwayomi.tachidesk.graphql.types.SourceNodeList
|
||||
import suwayomi.tachidesk.graphql.types.SourceNodeList.Companion.toNodeList
|
||||
import suwayomi.tachidesk.graphql.types.SourceType
|
||||
import suwayomi.tachidesk.manga.model.table.ExtensionTable
|
||||
import suwayomi.tachidesk.manga.model.table.MangaTable
|
||||
import suwayomi.tachidesk.manga.model.table.SourceTable
|
||||
import suwayomi.tachidesk.server.JavalinSetup.future
|
||||
|
||||
@@ -37,35 +36,6 @@ class SourceDataLoader : KotlinDataLoader<Long, SourceType?> {
|
||||
}
|
||||
}
|
||||
|
||||
class SourceForMangaDataLoader : KotlinDataLoader<Int, SourceType?> {
|
||||
override val dataLoaderName = "SourceForMangaDataLoader"
|
||||
override fun getDataLoader(): DataLoader<Int, SourceType?> = DataLoaderFactory.newDataLoader { ids ->
|
||||
future {
|
||||
transaction {
|
||||
addLogger(Slf4jSqlDebugLogger)
|
||||
|
||||
val itemsByRef = MangaTable.innerJoin(SourceTable)
|
||||
.select { MangaTable.id inList ids }
|
||||
.map { Triple(it[MangaTable.id].value, it[MangaTable.sourceReference], it) }
|
||||
.let { triples ->
|
||||
val sources = buildMap {
|
||||
triples.forEach {
|
||||
if (!containsKey(it.second)) {
|
||||
put(it.second, SourceType(it.third))
|
||||
}
|
||||
}
|
||||
}
|
||||
triples.associate {
|
||||
it.first to sources[it.second]
|
||||
}
|
||||
}
|
||||
|
||||
ids.map { itemsByRef[it] }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SourcesForExtensionDataLoader : KotlinDataLoader<String, SourceNodeList> {
|
||||
override val dataLoaderName = "SourcesForExtensionDataLoader"
|
||||
override fun getDataLoader(): DataLoader<String, SourceNodeList> = DataLoaderFactory.newDataLoader { ids ->
|
||||
|
||||
Reference in New Issue
Block a user