Expose core as member of JsonPage
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / GetPostAjaxPage.kt
index 3c35125..2b1deca 100644 (file)
@@ -5,11 +5,10 @@ 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.util.template.Template
-import net.pterodactylus.util.template.TemplateContext
-import java.io.StringWriter
 
 /**
  * This AJAX handler retrieves information and rendered representation of a [Post].
@@ -20,7 +19,7 @@ class GetPostAjaxPage(webInterface: WebInterface, private val postTemplate: Temp
 
        override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
                        request.parameters["post"]
-                                       .let(webInterface.core::getPost)
+                                       .let(core::getPost)
                                        .let { post ->
                                                createSuccessJsonObject().
                                                                put("post", jsonObject(
@@ -34,13 +33,11 @@ class GetPostAjaxPage(webInterface: WebInterface, private val postTemplate: Temp
 
        private fun Post.render(currentSone: Sone, request: FreenetRequest) =
                        webInterface.templateContextFactory.createTemplateContext().apply {
-                               set("core", webInterface.core)
+                               set("core", core)
                                set("request", request)
                                set("post", this@render)
                                set("currentSone", currentSone)
-                               set("localSones", webInterface.core.localSones)
+                               set("localSones", core.localSones)
                        }.let { postTemplate.render(it) }
 
 }
-
-private fun Template.render(templateContext: TemplateContext) = StringWriter().use { it.also { render(templateContext, it) } }.toString()