Added field name in accounts Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/84c66403 Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/84c66403 Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/84c66403
Branch: refs/heads/swellrt Commit: 84c664032af14550e7550e1dbc57ac731ce41d9a Parents: c1ad8e7 Author: Pablo Ojanguren <pablo...@gmail.com> Authored: Wed Sep 7 21:58:55 2016 +0200 Committer: Pablo Ojanguren <pablo...@gmail.com> Committed: Wed Sep 7 21:58:55 2016 +0200 ---------------------------------------------------------------------- .../server/box/servlet/AccountService.java | 41 ++++++++++---------- .../box/server/account/HumanAccountData.java | 18 +++++++++ .../server/account/HumanAccountDataImpl.java | 15 ++++++- .../persistence/mongodb/MongoDbStore.java | 12 +++++- 4 files changed, 63 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/84c66403/wave/src/main/java/org/swellrt/server/box/servlet/AccountService.java ---------------------------------------------------------------------- diff --git a/wave/src/main/java/org/swellrt/server/box/servlet/AccountService.java b/wave/src/main/java/org/swellrt/server/box/servlet/AccountService.java index 1a642b6..82139ce 100644 --- a/wave/src/main/java/org/swellrt/server/box/servlet/AccountService.java +++ b/wave/src/main/java/org/swellrt/server/box/servlet/AccountService.java @@ -1,9 +1,16 @@ package org.swellrt.server.box.servlet; -import com.google.gson.JsonParseException; -import com.google.inject.Inject; -import com.google.inject.name.Named; -import com.typesafe.config.Config; +import java.io.IOException; +import java.io.StringWriter; +import java.net.URLDecoder; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.apache.commons.validator.EmailValidator; @@ -21,17 +28,9 @@ import org.waveprotocol.wave.model.wave.InvalidParticipantAddress; import org.waveprotocol.wave.model.wave.ParticipantId; import org.waveprotocol.wave.util.logging.Log; -import java.io.IOException; -import java.io.StringWriter; -import java.net.URLDecoder; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import com.google.gson.JsonParseException; +import com.google.inject.Inject; +import com.typesafe.config.Config; /** * Service for creating and editing accounts. @@ -43,7 +42,7 @@ import javax.servlet.http.HttpServletResponse; * POST /account { id : <ParticipantId>, password : <String>, ... } * * - * Edit accound profile (empty values are deleted) + * Edit accoun profile (empty values are deleted) * * POST /account/{ParticipantId.name} { ... } * @@ -63,7 +62,7 @@ public class AccountService extends BaseService { public static class AccountServiceData extends ServiceData { public String id; - public String name; // For future use + public String name; public String password; public String email; public String avatarData; @@ -302,6 +301,8 @@ public class AccountService extends BaseService { account.setAvatarFileId(avatarFileId); } } + + if (userData.isParsedField("name")) account.setName(userData.name); accountStore.putAccount(account); @@ -580,9 +581,9 @@ public class AccountService extends BaseService { String avatarUrl = getAvatarUrl(urlBuilder, account); data.avatarUrl = avatarUrl == null ? "" : avatarUrl; data.locale = account.getLocale() == null ? "" : account.getLocale(); + data.name = account.getName() == null ? "" : account.getName(); return data; - } protected static AccountServiceData toPublicServiceData(UrlBuilder urlBuilder, @@ -594,9 +595,9 @@ public class AccountService extends BaseService { String avatarUrl = getAvatarUrl(urlBuilder, account); data.avatarUrl = avatarUrl == null ? "" : avatarUrl; data.locale = account.getLocale() == null ? "" : account.getLocale(); - + data.name = account.getName() == null ? "" : account.getName(); + return data; - } http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/84c66403/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountData.java ---------------------------------------------------------------------- diff --git a/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountData.java b/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountData.java index df56049..fc96f81 100644 --- a/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountData.java +++ b/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountData.java @@ -29,6 +29,7 @@ import org.waveprotocol.box.server.authentication.PasswordDigest; * @author ljvder...@google.com (Lennard de Rijk) * @author jose...@gmail.com (Joseph Gentle) * @author akapla...@gmail.com (Andrew Kaplanov) + * @author pablo...@gmail.com (Pablo Ojanguren) */ public interface HumanAccountData extends AccountData { /** @@ -125,6 +126,23 @@ public interface HumanAccountData extends AccountData { */ String getAvatarMimeType(); + /** + * + * @return + */ String getAvatarFileId(); + + /** + * Get the participant name + * @return + */ + String getName(); + + /** + * Set the participant name + * @return + */ + void setName(String name); + } http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/84c66403/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountDataImpl.java ---------------------------------------------------------------------- diff --git a/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountDataImpl.java b/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountDataImpl.java index 46d6ae5..9a8221f 100644 --- a/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountDataImpl.java +++ b/wave/src/main/java/org/waveprotocol/box/server/account/HumanAccountDataImpl.java @@ -32,6 +32,7 @@ import org.waveprotocol.wave.model.wave.ParticipantId; * @author akapla...@gmail.com (Andrew kaplanov) * @author pablo...@gmail.com (Pablo Ojanguren) */ +@SuppressWarnings("deprecation") public final class HumanAccountDataImpl implements HumanAccountData { private final ParticipantId id; private PasswordDigest passwordDigest; @@ -39,6 +40,7 @@ public final class HumanAccountDataImpl implements HumanAccountData { private String email; private SecretToken recoveryToken; private String avatarFileId; + private String name; /** * Creates an {@link HumanAccountData} for the given username, with no @@ -75,10 +77,11 @@ public final class HumanAccountDataImpl implements HumanAccountData { } public HumanAccountDataImpl(ParticipantId id, PasswordDigest passwordDigest, String email, - SecretToken token, String locale, String avatarFileId) { + SecretToken token, String locale, String avatarFileId, String name) { this(id, passwordDigest, email, token); this.locale = locale; this.avatarFileId = avatarFileId; + this.name = name; } @Override @@ -211,5 +214,15 @@ public final class HumanAccountDataImpl implements HumanAccountData { return parts != null && parts.length >= 1 ? parts[0] : null; } + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + } http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/84c66403/wave/src/main/java/org/waveprotocol/box/server/persistence/mongodb/MongoDbStore.java ---------------------------------------------------------------------- diff --git a/wave/src/main/java/org/waveprotocol/box/server/persistence/mongodb/MongoDbStore.java b/wave/src/main/java/org/waveprotocol/box/server/persistence/mongodb/MongoDbStore.java index 79c3ad5..efd5201 100644 --- a/wave/src/main/java/org/waveprotocol/box/server/persistence/mongodb/MongoDbStore.java +++ b/wave/src/main/java/org/waveprotocol/box/server/persistence/mongodb/MongoDbStore.java @@ -114,6 +114,7 @@ public final class MongoDbStore implements SignerInfoStore, AttachmentStore, Acc private static final String ACCOUNT_AVATAR_FILE = "avatarFile"; private static final String ACCOUNT_LOCALE = "locale"; + private static final String NAME_FIELD = "name"; private final DB database; private final GridFS attachmentGrid; @@ -359,6 +360,11 @@ public final class MongoDbStore implements SignerInfoStore, AttachmentStore, Acc object.put(ACCOUNT_AVATAR_FILE, account.getAvatarFileId()); } + if (account.getName() != null) { + object.put(NAME_FIELD, account.getName()); + } + + return object; } @@ -368,6 +374,7 @@ public final class MongoDbStore implements SignerInfoStore, AttachmentStore, Acc SecretToken token = null; String locale = null; String avatarFileName = null; + String name = null; DBObject digestObj = (DBObject) object.get(HUMAN_PASSWORD_FIELD); if (digestObj != null) { @@ -382,8 +389,9 @@ public final class MongoDbStore implements SignerInfoStore, AttachmentStore, Acc locale = (String) object.get(ACCOUNT_LOCALE); avatarFileName = (String) object.get(ACCOUNT_AVATAR_FILE); - - return new HumanAccountDataImpl(id, passwordDigest, email, token, locale, avatarFileName); + name = (String) object.get(NAME_FIELD); + + return new HumanAccountDataImpl(id, passwordDigest, email, token, locale, avatarFileName, name); } // ****** RobotAccountData serialization