Optimize some imports
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / CreatePostAjaxPage.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import net.pterodactylus.sone.data.*
4 import net.pterodactylus.sone.text.*
5 import net.pterodactylus.sone.utils.*
6 import net.pterodactylus.sone.web.*
7 import net.pterodactylus.sone.web.page.*
8 import javax.inject.*
9
10 /**
11  * AJAX handler that creates a new post.
12  */
13 class CreatePostAjaxPage @Inject constructor(webInterface: WebInterface) : LoggedInJsonPage("createPost.ajax", webInterface) {
14
15         override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
16                         request.parameters["text"].emptyToNull
17                                         ?.let { TextFilter.filter(request.headers["Host"], it) }
18                                         ?.let { text ->
19                                                 val sender = request.parameters["sender"].emptyToNull?.let(core::getSone) ?: currentSone
20                                                 val recipient = request.parameters["recipient"]?.let(core::getSone)
21                                                 core.createPost(sender, recipient.asOptional(), text).let { post ->
22                                                         createSuccessJsonObject().apply {
23                                                                 put("postId", post.id)
24                                                                 put("sone", sender.id)
25                                                                 put("recipient", recipient?.id)
26                                                         }
27                                                 }
28                                         } ?: createErrorJsonObject("text-required")
29
30 }