♻️ Move throwing redirect exception into method
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / EditProfilePage.kt
index b7524d0..93393ba 100644 (file)
@@ -1,22 +1,23 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.data.Profile.DuplicateField
-import net.pterodactylus.sone.data.Sone
+import net.pterodactylus.sone.data.*
+import net.pterodactylus.sone.data.Profile.*
 import net.pterodactylus.sone.main.*
-import net.pterodactylus.sone.text.TextFilter
-import net.pterodactylus.sone.utils.isPOST
-import net.pterodactylus.sone.web.WebInterface
+import net.pterodactylus.sone.text.*
+import net.pterodactylus.sone.utils.*
+import net.pterodactylus.sone.web.*
 import net.pterodactylus.sone.web.page.*
-import net.pterodactylus.util.template.Template
-import net.pterodactylus.util.template.TemplateContext
-import javax.inject.Inject
+import net.pterodactylus.util.template.*
+import javax.inject.*
 
 /**
  * This page lets the user edit her profile.
  */
 @MenuName("EditProfile")
-class EditProfilePage @Inject constructor(template: Template, webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
-               LoggedInPage("editProfile.html", template, "Page.EditProfile.Title", webInterface, loaders, templateRenderer) {
+@TemplatePath("/templates/editProfile.html")
+@ToadletPath("editProfile.html")
+class EditProfilePage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
+               LoggedInPage("Page.EditProfile.Title", webInterface, loaders, templateRenderer) {
 
        override fun handleRequest(soneRequest: SoneRequest, currentSone: Sone, templateContext: TemplateContext) {
                currentSone.profile.let { profile ->
@@ -42,31 +43,31 @@ class EditProfilePage @Inject constructor(template: Template, webInterface: WebI
                                        }
                                        currentSone.profile = profile
                                        soneRequest.core.touchConfiguration()
-                                       throw RedirectException("editProfile.html")
+                                       redirectTo("editProfile.html")
                                } else if (soneRequest.httpRequest.getPartAsStringFailsafe("add-field", 4) == "true") {
                                        val fieldName = soneRequest.httpRequest.getPartAsStringFailsafe("field-name", 100)
                                        try {
                                                profile.addField(fieldName)
                                                currentSone.profile = profile
                                                soneRequest.core.touchConfiguration()
-                                               throw RedirectException("editProfile.html#profile-fields")
+                                               redirectTo("editProfile.html#profile-fields")
                                        } catch (e: DuplicateField) {
                                                templateContext["fieldName"] = fieldName
                                                templateContext["duplicateFieldName"] = true
                                        }
                                } else profile.fields.forEach { field ->
                                        if (soneRequest.httpRequest.getPartAsStringFailsafe("delete-field-${field.id}", 4) == "true") {
-                                               throw RedirectException("deleteProfileField.html?field=${field.id}")
+                                               redirectTo("deleteProfileField.html?field=${field.id}")
                                        } else if (soneRequest.httpRequest.getPartAsStringFailsafe("edit-field-${field.id}", 4) == "true") {
-                                               throw RedirectException("editProfileField.html?field=${field.id}")
+                                               redirectTo("editProfileField.html?field=${field.id}")
                                        } else if (soneRequest.httpRequest.getPartAsStringFailsafe("move-down-field-${field.id}", 4) == "true") {
                                                profile.moveFieldDown(field)
                                                currentSone.profile = profile
-                                               throw RedirectException("editProfile.html#profile-fields")
+                                               redirectTo("editProfile.html#profile-fields")
                                        } else if (soneRequest.httpRequest.getPartAsStringFailsafe("move-up-field-${field.id}", 4) == "true") {
                                                profile.moveFieldUp(field)
                                                currentSone.profile = profile
-                                               throw RedirectException("editProfile.html#profile-fields")
+                                               redirectTo("editProfile.html#profile-fields")
                                        }
                                }
                        }