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
9 import javax.inject.Inject
12 * Page that stores a user’s album modifications.
14 class EditAlbumAjaxPage @Inject constructor(webInterface: WebInterface) : JsonPage("editAlbum.ajax", webInterface) {
16 override fun createJsonObject(request: FreenetRequest) =
17 request.parameters["album"]!!
20 album.sone.isLocal.ifTrue {
22 request.parameters["moveLeft"] == "true" -> createSuccessJsonObject().apply {
23 put("sourceAlbumId", album.id)
24 put("destinationAlbumId", album.parent.moveAlbumUp(album).id)
26 request.parameters["moveRight"] == "true" -> createSuccessJsonObject().apply {
27 put("sourceAlbumId", album.id)
28 put("destinationAlbumId", album.parent.moveAlbumDown(album).id)
32 .setTitle(request.parameters["title"])
33 .setDescription(TextFilter.filter(request.headers["Host"], request.parameters["description"]))
35 createSuccessJsonObject()
36 .put("albumId", album.id)
37 .put("title", album.title)
38 .put("description", album.description)
39 } catch (e: IllegalStateException) {
40 createErrorJsonObject("invalid-album-title")
43 } ?: createErrorJsonObject("not-authorized")
44 } ?: createErrorJsonObject("invalid-album-id")