X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FCreatePostAjaxPage.kt;h=28af3e320e947f954032ccb890eba8ca86c35d44;hp=c9bcf48c7b9d9c89932d9c77db122f946c5a7347;hb=04709e23f38e9d447337682ba27201da5dc19bd9;hpb=cf4ccc7587da36e4a6ba6aa7c04394280b35e271 diff --git a/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt b/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt index c9bcf48..28af3e3 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt @@ -1,34 +1,31 @@ package net.pterodactylus.sone.web.ajax -import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.text.TextFilter -import net.pterodactylus.sone.utils.emptyToNull -import net.pterodactylus.sone.utils.headers -import net.pterodactylus.sone.utils.let -import net.pterodactylus.sone.utils.parameters -import net.pterodactylus.sone.web.WebInterface -import net.pterodactylus.sone.web.page.FreenetRequest +import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.text.* +import net.pterodactylus.sone.utils.* +import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.page.* +import javax.inject.* /** * AJAX handler that creates a new post. */ -class CreatePostAjaxPage(webInterface: WebInterface) : JsonPage("createPost.ajax", webInterface) { +@ToadletPath("createPost.ajax") +class CreatePostAjaxPage @Inject constructor(webInterface: WebInterface) : LoggedInJsonPage(webInterface) { - override fun createJsonObject(request: FreenetRequest) = - getCurrentSone(request.toadletContext)?.let { sone -> - request.parameters["text"].emptyToNull - ?.let { TextFilter.filter(request.headers["Host"], it) } - ?.let { text -> - val sender = request.parameters["sender"].emptyToNull?.let(webInterface.core::getSone)?.orNull() ?: sone - val recipient = request.parameters["recipient"].let(webInterface.core::getSone) - webInterface.core.createPost(sender, recipient, text).let { post -> - createSuccessJsonObject().apply { - put("postId", post.id) - put("sone", sender.id) - put("recipient", recipient.let(Sone::getId)) - } + override fun createJsonObject(currentSone: Sone, request: FreenetRequest) = + request.parameters["text"].emptyToNull + ?.let { TextFilter.filter(request.headers["Host"], it) } + ?.let { text -> + val sender = request.parameters["sender"].emptyToNull?.let(core::getSone) ?: currentSone + val recipient = request.parameters["recipient"]?.let(core::getSone) + core.createPost(sender, recipient, text).let { post -> + createSuccessJsonObject().apply { + put("postId", post.id) + put("sone", sender.id) + put("recipient", recipient?.id) } - } ?: createErrorJsonObject("text-required") - } ?: createErrorJsonObject("auth-required") + } + } ?: createErrorJsonObject("text-required") }