X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FUnlockSoneAjaxPage.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FUnlockSoneAjaxPage.kt;h=2dffbed4bc6f2a1cfc420bd176c0e7dac3ad5bef;hp=0000000000000000000000000000000000000000;hb=8419f82ea9a6da6f4c8c564e13a2614be89ae3df;hpb=90098a7e334d7af6a709bfac3e5ee8bf963c793a diff --git a/src/main/kotlin/net/pterodactylus/sone/web/ajax/UnlockSoneAjaxPage.kt b/src/main/kotlin/net/pterodactylus/sone/web/ajax/UnlockSoneAjaxPage.kt new file mode 100644 index 0000000..2dffbed --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/web/ajax/UnlockSoneAjaxPage.kt @@ -0,0 +1,22 @@ +package net.pterodactylus.sone.web.ajax + +import net.pterodactylus.sone.utils.parameters +import net.pterodactylus.sone.web.WebInterface +import net.pterodactylus.sone.web.page.FreenetRequest + +/** + * Lets the user [unlock][net.pterodactylus.sone.core.Core.unlockSone] a [Sone][net.pterodactylus.sone.data.Sone]. + */ +class UnlockSoneAjaxPage(webInterface: WebInterface) : JsonPage("unlockSone.ajax", webInterface) { + + override fun requiresLogin() = false + + override fun createJsonObject(request: FreenetRequest) = + request.parameters["sone"] + ?.let(webInterface.core::getLocalSone) + ?.also(webInterface.core::unlockSone) + ?.also { webInterface.core.touchConfiguration() } + ?.let { createSuccessJsonObject() } + ?: createErrorJsonObject("invalid-sone-id") + +}