X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FCreateReplyAjaxPage.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FCreateReplyAjaxPage.kt;h=7cf2e1ec7cd4619caf004ef54f47168ff06202a5;hb=ec7a80c007d6d759823d6d922e6c680c04d334cd;hp=0000000000000000000000000000000000000000;hpb=cf4ccc7587da36e4a6ba6aa7c04394280b35e271;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.kt b/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.kt new file mode 100644 index 0000000..7cf2e1e --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.kt @@ -0,0 +1,30 @@ +package net.pterodactylus.sone.web.ajax + +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 + +/** + * This AJAX page create a reply. + */ +class CreateReplyAjaxPage(webInterface: WebInterface) : JsonPage("createReply.ajax", webInterface) { + + override fun createJsonObject(request: FreenetRequest): JsonReturnObject = + request.parameters["post"].emptyToNull + ?.let(webInterface.core::getPost) + ?.let { post -> + val text = TextFilter.filter(request.headers["Host"], request.parameters["text"]) + val sender = request.parameters["sender"].let(webInterface.core::getLocalSone) ?: getCurrentSone(request.toadletContext) + val reply = webInterface.core.createReply(sender, post, text) + createSuccessJsonObject().apply { + put("reply", reply.id) + put("sone", sender.id) + } + } + ?: createErrorJsonObject("invalid-post-id") + +}