diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java index aad48471f..e2f6b4352 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java @@ -187,8 +187,9 @@ public class ProfileController { response = Optional.of(generateAvatarUploadForm(avatar)); } - List updatedBadges = mergeBadgeIdsWithExistingAccountBadges( - request.getBadges(), auth.getAccount().getBadges()); + List updatedBadges = request.getBadges() + .map(badges -> mergeBadgeIdsWithExistingAccountBadges(badges, auth.getAccount().getBadges())) + .orElseGet(() -> auth.getAccount().getBadges()); accountsManager.update(auth.getAccount(), a -> { a.setProfileName(request.getName()); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/entities/CreateProfileRequest.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/CreateProfileRequest.java index 28fc87414..38d91fad8 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/entities/CreateProfileRequest.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/entities/CreateProfileRequest.java @@ -8,8 +8,9 @@ package org.whispersystems.textsecuregcm.entities; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import org.apache.commons.lang3.StringUtils; @@ -42,8 +43,8 @@ public class CreateProfileRequest { private String paymentAddress; @JsonProperty - @NotNull - private List badgeIds = new ArrayList<>(); + @Nullable + private List badgeIds; @JsonProperty @NotNull @@ -95,7 +96,7 @@ public class CreateProfileRequest { return StringUtils.stripToNull(paymentAddress); } - public List getBadges() { - return badgeIds; + public Optional> getBadges() { + return Optional.ofNullable(badgeIds); } }