Add mutation to install external extension (#667)

This commit is contained in:
schroda
2023-08-27 04:19:51 +02:00
committed by GitHub
parent c42d314b76
commit 3343007cf8
@@ -1,6 +1,7 @@
package suwayomi.tachidesk.graphql.mutations
import eu.kanade.tachiyomi.source.local.LocalSource
import io.javalin.http.UploadedFile
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import suwayomi.tachidesk.graphql.types.ExtensionType
@@ -124,4 +125,29 @@ class ExtensionMutation {
)
}
}
data class InstallExternalExtensionInput(
val clientMutationId: String? = null,
val extensionFile: UploadedFile
)
data class InstallExternalExtensionPayload(
val clientMutationId: String?,
val extension: ExtensionType
)
fun installExternalExtension(input: InstallExternalExtensionInput): CompletableFuture<InstallExternalExtensionPayload> {
val (clientMutationId, extensionFile) = input
return future {
Extension.installExternalExtension(extensionFile.content, extensionFile.filename)
}.thenApply {
val dbExtension = transaction { ExtensionTable.select { ExtensionTable.apkName eq extensionFile.filename }.first() }
InstallExternalExtensionPayload(
clientMutationId,
extension = ExtensionType(dbExtension)
)
}
}
}