X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FDeletePostAjaxPage.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FDeletePostAjaxPage.kt;h=4d8206380aa2475ead1fa8c9e7dcd03ca1d8a643;hb=6cac5513ec98c44bc574a87111bec2a2524464bd;hp=0000000000000000000000000000000000000000;hpb=b51bf84d05e317d8a8179d72a788190b350a95a1;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/web/ajax/DeletePostAjaxPage.kt b/src/main/kotlin/net/pterodactylus/sone/web/ajax/DeletePostAjaxPage.kt new file mode 100644 index 0000000..4d82063 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/web/ajax/DeletePostAjaxPage.kt @@ -0,0 +1,25 @@ +package net.pterodactylus.sone.web.ajax + +import net.pterodactylus.sone.utils.ifTrue +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 + +/** + * This AJAX page deletes a post. + */ +class DeletePostAjaxPage(webInterface: WebInterface) : JsonPage("deletePost.ajax", webInterface) { + + override fun createJsonObject(request: FreenetRequest) = + request.parameters["post"] + .let(webInterface.core::getPost) + ?.let { post -> + post.sone.isLocal.ifTrue { + createSuccessJsonObject().also { + webInterface.core.deletePost(post) + } + } ?: createErrorJsonObject("not-authorized") + } ?: createErrorJsonObject("invalid-post-id") + +}