Factor out templating
That will make it easier to add more template variables.
Change-Id: Ib66c94b83c404aae4d56bbbc2e95101c296ebb1d
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/avatars/external/ExternalUrlAvatarProvider.java b/src/main/java/com/googlesource/gerrit/plugins/avatars/external/ExternalUrlAvatarProvider.java
index fafa92e..ef7a500 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/avatars/external/ExternalUrlAvatarProvider.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/avatars/external/ExternalUrlAvatarProvider.java
@@ -82,10 +82,9 @@
externalAvatarUrl = externalAvatarUrl.replace("http://", "https://");
}
StringBuilder avatarUrl = new StringBuilder();
- String userReplacedAvatarURL = replaceInUrl(USER_PLACEHOLDER,
- externalAvatarUrl, forUser.getUserName().orElse(null));
- avatarUrl.append(replaceInUrl(EMAIL_PLACEHOLDER, userReplacedAvatarURL,
- forUser.getAccount().preferredEmail()));
+ String userReplacedAvatarURL = fillOutTemplate(externalAvatarUrl,
+ forUser);
+ avatarUrl.append(userReplacedAvatarURL);
if (imageSize > 0 && sizeParameter != null) {
if (avatarUrl.indexOf("?") < 0) {
avatarUrl.append("?");
@@ -100,10 +99,7 @@
@Override
public String getChangeAvatarUrl(IdentifiedUser forUser) {
- String userReplacedAvatarChangeURL = replaceInUrl(USER_PLACEHOLDER,
- avatarChangeUrl, forUser.getUserName().orElse(null));
- return replaceInUrl(EMAIL_PLACEHOLDER, userReplacedAvatarChangeURL,
- forUser.getAccount().preferredEmail());
+ return fillOutTemplate(avatarChangeUrl, forUser);
}
/**
@@ -127,4 +123,17 @@
// as we can't assume anything of 'replacement', we're URL encoding it
return url.replace(placeholder, Url.encode(replacement));
}
+
+ /**
+ * Takes a template string and a user and fills in the template variables
+ * @param template The template string to work from
+ * @param user The user object to get information from
+ * @return filled in string
+ */
+ private String fillOutTemplate(String template, IdentifiedUser user) {
+ String workString = replaceInUrl(USER_PLACEHOLDER,
+ template, user.getUserName().orElse(null));
+ return replaceInUrl(EMAIL_PLACEHOLDER, workString,
+ user.getAccount().preferredEmail());
+ }
}