mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 03:14:40 -05:00
Add mutation to install external extension (#667)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package suwayomi.tachidesk.graphql.mutations
|
package suwayomi.tachidesk.graphql.mutations
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.source.local.LocalSource
|
import eu.kanade.tachiyomi.source.local.LocalSource
|
||||||
|
import io.javalin.http.UploadedFile
|
||||||
import org.jetbrains.exposed.sql.select
|
import org.jetbrains.exposed.sql.select
|
||||||
import org.jetbrains.exposed.sql.transactions.transaction
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import suwayomi.tachidesk.graphql.types.ExtensionType
|
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)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user