d422c6970b25864846780622793918c520e04543
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / DeleteReplyAjaxPage.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.utils.ifTrue
5 import net.pterodactylus.sone.utils.let
6 import net.pterodactylus.sone.utils.parameters
7 import net.pterodactylus.sone.web.WebInterface
8 import net.pterodactylus.sone.web.page.FreenetRequest
9 import javax.inject.Inject
10
11 /**
12  * This AJAX page deletes a reply.
13  */
14 class DeleteReplyAjaxPage @Inject constructor(webInterface: WebInterface) :
15                 LoggedInJsonPage("deleteReply.ajax", webInterface) {
16
17         override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
18                         request.parameters["reply"]
19                                         ?.let(core::getPostReply)
20                                         ?.let { reply ->
21                                                 reply.sone.isLocal.ifTrue {
22                                                         createSuccessJsonObject().also {
23                                                                 core.deleteReply(reply)
24                                                         }
25                                                 } ?: createErrorJsonObject("not-authorized")
26                                         } ?: createErrorJsonObject("invalid-reply-id")
27
28 }