Add a "sameAvatar" flag to CreateProfileRequest

If sameAvatar is set (and "avatar" is also set), the avatar field for
a profile will be copied from the existing profile. This saves S3
churn and client bandwidth.
This commit is contained in:
Jordan Rose
2021-12-23 12:15:42 -08:00
committed by Chris Eager
parent 87d66f04d8
commit 146655e997
3 changed files with 167 additions and 32 deletions

View File

@@ -30,6 +30,9 @@ public class CreateProfileRequest {
@JsonProperty
private boolean avatar;
@JsonProperty
private boolean sameAvatar;
@JsonProperty
@ExactlySize({0, 80})
private String aboutEmoji;
@@ -57,7 +60,7 @@ public class CreateProfileRequest {
public CreateProfileRequest(
ProfileKeyCommitment commitment, String version, String name, String aboutEmoji, String about,
String paymentAddress, boolean wantsAvatar, List<String> badgeIds) {
String paymentAddress, boolean wantsAvatar, boolean sameAvatar, List<String> badgeIds) {
this.commitment = commitment;
this.version = version;
this.name = name;
@@ -65,6 +68,7 @@ public class CreateProfileRequest {
this.about = about;
this.paymentAddress = paymentAddress;
this.avatar = wantsAvatar;
this.sameAvatar = sameAvatar;
this.badgeIds = badgeIds;
}
@@ -80,10 +84,26 @@ public class CreateProfileRequest {
return name;
}
public boolean isAvatar() {
public boolean hasAvatar() {
return avatar;
}
public enum AvatarChange {
UNCHANGED,
CLEAR,
UPDATE;
}
public AvatarChange getAvatarChange() {
if (!hasAvatar()) {
return AvatarChange.CLEAR;
}
if (!sameAvatar) {
return AvatarChange.UPDATE;
}
return AvatarChange.UNCHANGED;
}
public String getAboutEmoji() {
return StringUtils.stripToNull(aboutEmoji);
}