1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.text.TextFilter
4 import net.pterodactylus.sone.utils.headers
5 import net.pterodactylus.sone.utils.ifTrue
6 import net.pterodactylus.sone.utils.parameters
7 import net.pterodactylus.sone.web.WebInterface
8 import net.pterodactylus.sone.web.page.FreenetRequest
11 * Page that stores a user’s album modifications.
13 class EditAlbumAjaxPage(webInterface: WebInterface) : JsonPage("editAlbum.ajax", webInterface) {
15 override fun createJsonObject(request: FreenetRequest) =
16 request.parameters["album"]!!
19 album.sone.isLocal.ifTrue {
21 request.parameters["moveLeft"] == "true" -> createSuccessJsonObject().apply {
22 put("sourceAlbumId", album.id)
23 put("destinationAlbumId", album.parent.moveAlbumUp(album).id)
25 request.parameters["moveRight"] == "true" -> createSuccessJsonObject().apply {
26 put("sourceAlbumId", album.id)
27 put("destinationAlbumId", album.parent.moveAlbumDown(album).id)
31 .setTitle(request.parameters["title"])
32 .setDescription(TextFilter.filter(request.headers["Host"], request.parameters["description"]))
34 createSuccessJsonObject()
35 .put("albumId", album.id)
36 .put("title", album.title)
37 .put("description", album.description)
38 } catch (e: IllegalStateException) {
39 createErrorJsonObject("invalid-album-title")
42 } ?: createErrorJsonObject("not-authorized")
43 } ?: createErrorJsonObject("invalid-album-id")