1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.utils.ifFalse
4 import net.pterodactylus.sone.utils.parameters
5 import net.pterodactylus.sone.web.WebInterface
6 import net.pterodactylus.sone.web.page.FreenetRequest
9 * AJAX page that lets the user rename a profile field.
11 class EditProfileFieldAjaxPage(webInterface: WebInterface) : JsonPage("editProfileField.ajax", webInterface) {
13 override fun createJsonObject(request: FreenetRequest) =
14 getCurrentSone(request.toadletContext).profile.let { profile ->
15 request.parameters["field"]!!
16 .let(profile::getFieldById)
18 request.parameters["name"]!!.trim().let { newName ->
19 newName.isBlank().ifFalse {
22 createSuccessJsonObject().also {
23 getCurrentSone(request.toadletContext).profile = profile
25 } catch (_: IllegalArgumentException) {
26 createErrorJsonObject("duplicate-field-name")
29 } ?: createErrorJsonObject("invalid-parameter-name")
30 } ?: createErrorJsonObject("invalid-field-id")