import net.pterodactylus.sone.data.Post
import net.pterodactylus.sone.data.Sone
import net.pterodactylus.sone.utils.jsonObject
-import net.pterodactylus.sone.utils.let
import net.pterodactylus.sone.utils.parameters
import net.pterodactylus.sone.utils.render
import net.pterodactylus.sone.web.WebInterface
-import net.pterodactylus.sone.web.page.FreenetRequest
+import net.pterodactylus.sone.web.page.*
import net.pterodactylus.util.template.Template
+import javax.inject.Inject
/**
* This AJAX handler retrieves information and rendered representation of a [Post].
*/
-class GetPostAjaxPage(webInterface: WebInterface, private val postTemplate: Template) : LoggedInJsonPage("getPost.ajax", webInterface) {
+@ToadletPath("getPost.ajax")
+class GetPostAjaxPage @Inject constructor(webInterface: WebInterface, private val postTemplate: Template) : LoggedInJsonPage(webInterface) {
override val needsFormPassword = false
override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
request.parameters["post"]
- .let(core::getPost)
- .let { post ->
+ ?.let(core::getPost)
+ ?.let { post ->
createSuccessJsonObject().
put("post", jsonObject(
"id" to post.id,