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()); + } }