package net.pterodactylus.sone.web.ajax
+import net.pterodactylus.sone.data.Sone
import net.pterodactylus.sone.utils.ifFalse
import net.pterodactylus.sone.utils.parameters
import net.pterodactylus.sone.web.WebInterface
-import net.pterodactylus.sone.web.page.FreenetRequest
+import net.pterodactylus.sone.web.page.*
+import javax.inject.Inject
/**
* AJAX page that lets the user rename a profile field.
*/
-class EditProfileFieldAjaxPage(webInterface: WebInterface) : JsonPage("editProfileField.ajax", webInterface) {
+@ToadletPath("editProfileField.ajax")
+class EditProfileFieldAjaxPage @Inject constructor(webInterface: WebInterface) : LoggedInJsonPage(webInterface) {
- override fun createJsonObject(request: FreenetRequest) =
- getCurrentSone(request.toadletContext).profile.let { profile ->
+ override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
+ currentSone.profile.let { profile ->
request.parameters["field"]!!
.let(profile::getFieldById)
?.let { field ->
try {
field.name = newName
createSuccessJsonObject().also {
- getCurrentSone(request.toadletContext).profile = profile
+ currentSone.profile = profile
}
} catch (_: IllegalArgumentException) {
createErrorJsonObject("duplicate-field-name")