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=47535c05bb0cbda81c81778251bb8e8a612f386e;hp=9e96e69d56c6b0f8e9ca3b050da29dfc094d4330;hb=406700bbe3d320c88f275aec62a50cfec9bd2223;hpb=9e697ac643d11a2b7644a948732674eea195718a 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 9e96e69..47535c0 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/ajax/CreatePostAjaxPage.kt @@ -2,29 +2,31 @@ package net.pterodactylus.sone.web.ajax import net.pterodactylus.sone.data.Sone import net.pterodactylus.sone.text.TextFilter +import net.pterodactylus.sone.utils.asOptional 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 javax.inject.Inject /** * AJAX handler that creates a new post. */ -class CreatePostAjaxPage(webInterface: WebInterface) : LoggedInJsonPage("createPost.ajax", webInterface) { +class CreatePostAjaxPage @Inject constructor(webInterface: WebInterface) : LoggedInJsonPage("createPost.ajax", webInterface) { 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(webInterface.core::getSone)?.orNull() ?: currentSone - val recipient = request.parameters["recipient"].let(webInterface.core::getSone) - webInterface.core.createPost(sender, recipient, text).let { post -> + val sender = request.parameters["sender"].emptyToNull?.let(core::getSone) ?: currentSone + val recipient = request.parameters["recipient"]?.let(core::getSone) + core.createPost(sender, recipient.asOptional(), text).let { post -> createSuccessJsonObject().apply { put("postId", post.id) put("sone", sender.id) - put("recipient", recipient.let(Sone::getId)) + put("recipient", recipient?.id) } } } ?: createErrorJsonObject("text-required")