1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.utils.also
5 import net.pterodactylus.sone.utils.isGET
6 import net.pterodactylus.sone.utils.isPOST
7 import net.pterodactylus.sone.utils.parameters
8 import net.pterodactylus.sone.web.WebInterface
9 import net.pterodactylus.sone.web.page.FreenetRequest
10 import net.pterodactylus.util.template.Template
11 import net.pterodactylus.util.template.TemplateContext
12 import javax.inject.Inject
15 * Page that lets the user unbookmark a post.
17 class UnbookmarkPage @Inject constructor(template: Template, webInterface: WebInterface):
18 SoneTemplatePage("unbookmark.html", webInterface, template, "Page.Unbookmark.Title") {
20 override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
22 freenetRequest.isGET && (freenetRequest.parameters["post"] == "allNotLoaded") -> {
23 webInterface.core.bookmarkedPosts
24 .filterNot(Post::isLoaded)
25 .forEach(webInterface.core::unbookmarkPost)
26 throw RedirectException("bookmarks.html")
28 freenetRequest.isPOST -> {
29 freenetRequest.parameters["post", 36]
30 ?.let(webInterface.core::getPost)
31 ?.also(webInterface.core::unbookmarkPost)
32 throw RedirectException(freenetRequest.parameters["returnPage", 256])