mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 11:24:35 -05:00
* Update graphqlkotlin to v9 * Update to the v10 alpha due to nullability issues in v9 * Fixes * Remove asDataFetcherResult --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Syer10 <syer10@users.noreply.github.com>
73 lines
2.2 KiB
Kotlin
73 lines
2.2 KiB
Kotlin
@file:Suppress("RedundantNullableReturnType", "unused")
|
|
|
|
package suwayomi.tachidesk.graphql.mutations
|
|
|
|
import com.expediagroup.graphql.generator.annotations.GraphQLIgnore
|
|
import suwayomi.tachidesk.graphql.directives.RequireAuth
|
|
import suwayomi.tachidesk.graphql.types.PartialSettingsType
|
|
import suwayomi.tachidesk.graphql.types.Settings
|
|
import suwayomi.tachidesk.graphql.types.SettingsType
|
|
import suwayomi.tachidesk.server.SERVER_CONFIG_MODULE_NAME
|
|
import suwayomi.tachidesk.server.ServerConfig
|
|
import suwayomi.tachidesk.server.settings.SettingsUpdater
|
|
import suwayomi.tachidesk.server.settings.SettingsValidator
|
|
import xyz.nulldev.ts.config.GlobalConfigManager
|
|
|
|
class SettingsMutation {
|
|
data class SetSettingsInput(
|
|
val clientMutationId: String? = null,
|
|
val settings: PartialSettingsType,
|
|
)
|
|
|
|
data class SetSettingsPayload(
|
|
val clientMutationId: String?,
|
|
val settings: SettingsType,
|
|
)
|
|
|
|
@GraphQLIgnore
|
|
fun updateSettings(settings: Settings) {
|
|
val validationErrors = SettingsValidator.validate(settings, true)
|
|
if (validationErrors.isNotEmpty()) {
|
|
throw Exception("Validation errors: ${validationErrors.joinToString("; ")}")
|
|
}
|
|
|
|
SettingsUpdater.updateAll(settings)
|
|
}
|
|
|
|
@RequireAuth
|
|
fun setSettings(input: SetSettingsInput): SetSettingsPayload {
|
|
val (clientMutationId, settings) = input
|
|
|
|
updateSettings(settings)
|
|
|
|
return SetSettingsPayload(clientMutationId, SettingsType())
|
|
}
|
|
|
|
data class ResetSettingsInput(
|
|
val clientMutationId: String? = null,
|
|
)
|
|
|
|
data class ResetSettingsPayload(
|
|
val clientMutationId: String?,
|
|
val settings: SettingsType,
|
|
)
|
|
|
|
@RequireAuth
|
|
fun resetSettings(input: ResetSettingsInput): ResetSettingsPayload {
|
|
val (clientMutationId) = input
|
|
|
|
GlobalConfigManager.resetUserConfig()
|
|
val defaultServerConfig =
|
|
ServerConfig {
|
|
GlobalConfigManager.config.getConfig(
|
|
SERVER_CONFIG_MODULE_NAME,
|
|
)
|
|
}
|
|
|
|
val settings = SettingsType(defaultServerConfig)
|
|
updateSettings(settings)
|
|
|
|
return ResetSettingsPayload(clientMutationId, settings)
|
|
}
|
|
}
|