X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FEditProfilePage.java;h=df5a35220070673f60246834e6e1e1b3b7cdb409;hb=7708df5b6f4d1cf1416a8202b825a4f6f78f289e;hp=ecab3da7ac810a4f833c924a8fbc336df0241ff5;hpb=c1a038857688b13861214d8d08a29363cc5366df;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java index ecab3da..df5a352 100644 --- a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java +++ b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java @@ -17,6 +17,8 @@ package net.pterodactylus.sone.web; +import static net.pterodactylus.sone.data.Identified.GET_ID; + import java.util.List; import net.pterodactylus.sone.data.Profile; @@ -27,8 +29,11 @@ import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.web.Method; + import freenet.clients.http.ToadletContext; +import com.google.common.base.Optional; + /** * This page lets the user edit her profile. * @@ -76,11 +81,11 @@ public class EditProfilePage extends SoneTemplatePage { birthYear = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-year", 256).trim()); avatarId = request.getHttpRequest().getPartAsStringFailsafe("avatarId", 36); profile.modify().setFirstName(getNameFromFormField(firstName)).setMiddleName(getNameFromFormField(middleName)).setLastName(getNameFromFormField(lastName)).update(); - profile.setBirthDay(birthDay).setBirthMonth(birthMonth).setBirthYear(birthYear); - profile.setAvatar(webInterface.getCore().getImage(avatarId).orNull()); + profile.modify().setBirthDay(birthDay).setBirthMonth(birthMonth).setBirthYear(birthYear).update(); + profile.setAvatar(webInterface.getCore().getImage(avatarId).transform(GET_ID)); for (Field field : fields) { String value = request.getHttpRequest().getPartAsStringFailsafe("field-" + field.getId(), 400); - field.setValue(value); + profile.setField(field, value); } currentSone.setProfile(profile); webInterface.getCore().touchConfiguration(); @@ -104,21 +109,21 @@ public class EditProfilePage extends SoneTemplatePage { } id = getFieldId(request, "move-up-field-"); if (id != null) { - Field field = profile.getFieldById(id); - if (field == null) { + Optional field = profile.getFieldById(id); + if (!field.isPresent()) { throw new RedirectException("invalid.html"); } - profile.moveFieldUp(field); + profile.moveFieldUp(field.get()); currentSone.setProfile(profile); throw new RedirectException("editProfile.html#profile-fields"); } id = getFieldId(request, "move-down-field-"); if (id != null) { - Field field = profile.getFieldById(id); - if (field == null) { + Optional field = profile.getFieldById(id); + if (!field.isPresent()) { throw new RedirectException("invalid.html"); } - profile.moveFieldDown(field); + profile.moveFieldDown(field.get()); currentSone.setProfile(profile); throw new RedirectException("editProfile.html#profile-fields"); }