Simplify capabilities representation in gRPC profile responses
This commit is contained in:
parent
74f8889bfa
commit
f5a93574f6
|
@ -12,7 +12,6 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.signal.chat.profile.AccountCapabilities;
|
|
||||||
import org.signal.chat.profile.Badge;
|
import org.signal.chat.profile.Badge;
|
||||||
import org.signal.chat.profile.BadgeSvg;
|
import org.signal.chat.profile.BadgeSvg;
|
||||||
import org.signal.chat.profile.GetExpiringProfileKeyCredentialResponse;
|
import org.signal.chat.profile.GetExpiringProfileKeyCredentialResponse;
|
||||||
|
@ -81,16 +80,12 @@ public class ProfileGrpcHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static AccountCapabilities buildAccountCapabilities(final Account account) {
|
static List<org.signal.chat.common.DeviceCapability> buildAccountCapabilities(final Account account) {
|
||||||
final AccountCapabilities.Builder capabilitiesBuilder = AccountCapabilities.newBuilder();
|
return Arrays.stream(DeviceCapability.values())
|
||||||
|
|
||||||
Arrays.stream(DeviceCapability.values())
|
|
||||||
.filter(DeviceCapability::includeInProfile)
|
.filter(DeviceCapability::includeInProfile)
|
||||||
.filter(account::hasCapability)
|
.filter(account::hasCapability)
|
||||||
.map(DeviceCapabilityUtil::toGrpcDeviceCapability)
|
.map(DeviceCapabilityUtil::toGrpcDeviceCapability)
|
||||||
.forEach(capabilitiesBuilder::addCapabilities);
|
.toList();
|
||||||
|
|
||||||
return capabilitiesBuilder.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<BadgeSvg> buildBadgeSvgs(final List<org.whispersystems.textsecuregcm.entities.BadgeSvg> badgeSvgs) {
|
private static List<BadgeSvg> buildBadgeSvgs(final List<org.whispersystems.textsecuregcm.entities.BadgeSvg> badgeSvgs) {
|
||||||
|
@ -111,7 +106,7 @@ public class ProfileGrpcHelper {
|
||||||
final ProfileBadgeConverter profileBadgeConverter) {
|
final ProfileBadgeConverter profileBadgeConverter) {
|
||||||
final GetUnversionedProfileResponse.Builder responseBuilder = GetUnversionedProfileResponse.newBuilder()
|
final GetUnversionedProfileResponse.Builder responseBuilder = GetUnversionedProfileResponse.newBuilder()
|
||||||
.setIdentityKey(ByteString.copyFrom(targetAccount.getIdentityKey(targetIdentifier.identityType()).serialize()))
|
.setIdentityKey(ByteString.copyFrom(targetAccount.getIdentityKey(targetIdentifier.identityType()).serialize()))
|
||||||
.setCapabilities(buildAccountCapabilities(targetAccount));
|
.addAllCapabilities(buildAccountCapabilities(targetAccount));
|
||||||
|
|
||||||
switch (targetIdentifier.identityType()) {
|
switch (targetIdentifier.identityType()) {
|
||||||
case ACI -> {
|
case ACI -> {
|
||||||
|
|
|
@ -241,7 +241,7 @@ message GetUnversionedProfileResponse {
|
||||||
/**
|
/**
|
||||||
* A list of capabilities enabled on the account.
|
* A list of capabilities enabled on the account.
|
||||||
*/
|
*/
|
||||||
AccountCapabilities capabilities = 4;
|
repeated common.DeviceCapability capabilities = 4;
|
||||||
/**
|
/**
|
||||||
* A list of badges associated with the account.
|
* A list of badges associated with the account.
|
||||||
*/
|
*/
|
||||||
|
@ -317,10 +317,6 @@ message ProfileAvatarUploadAttributes {
|
||||||
bytes signature = 7;
|
bytes signature = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message AccountCapabilities {
|
|
||||||
repeated common.DeviceCapability capabilities = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Badge {
|
message Badge {
|
||||||
/**
|
/**
|
||||||
* An ID that uniquely identifies the badge.
|
* An ID that uniquely identifies the badge.
|
||||||
|
|
|
@ -36,7 +36,6 @@ import org.junit.jupiter.params.provider.MethodSource;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.signal.chat.common.IdentityType;
|
import org.signal.chat.common.IdentityType;
|
||||||
import org.signal.chat.common.ServiceIdentifier;
|
import org.signal.chat.common.ServiceIdentifier;
|
||||||
import org.signal.chat.profile.AccountCapabilities;
|
|
||||||
import org.signal.chat.profile.CredentialType;
|
import org.signal.chat.profile.CredentialType;
|
||||||
import org.signal.chat.profile.GetExpiringProfileKeyCredentialAnonymousRequest;
|
import org.signal.chat.profile.GetExpiringProfileKeyCredentialAnonymousRequest;
|
||||||
import org.signal.chat.profile.GetExpiringProfileKeyCredentialRequest;
|
import org.signal.chat.profile.GetExpiringProfileKeyCredentialRequest;
|
||||||
|
@ -161,9 +160,7 @@ public class ProfileAnonymousGrpcServiceTest extends SimpleBaseGrpcTest<ProfileA
|
||||||
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
||||||
.setUnidentifiedAccess(ByteString.copyFrom(unidentifiedAccessChecksum))
|
.setUnidentifiedAccess(ByteString.copyFrom(unidentifiedAccessChecksum))
|
||||||
.setUnrestrictedUnidentifiedAccess(false)
|
.setUnrestrictedUnidentifiedAccess(false)
|
||||||
.setCapabilities(AccountCapabilities.newBuilder()
|
.addCapabilities(org.signal.chat.common.DeviceCapability.DEVICE_CAPABILITY_DELETE_SYNC)
|
||||||
.addCapabilities(org.signal.chat.common.DeviceCapability.DEVICE_CAPABILITY_DELETE_SYNC)
|
|
||||||
.build())
|
|
||||||
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -215,7 +212,7 @@ public class ProfileAnonymousGrpcServiceTest extends SimpleBaseGrpcTest<ProfileA
|
||||||
final GetUnversionedProfileResponse expectedResponse = GetUnversionedProfileResponse.newBuilder()
|
final GetUnversionedProfileResponse expectedResponse = GetUnversionedProfileResponse.newBuilder()
|
||||||
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
||||||
.setUnrestrictedUnidentifiedAccess(false)
|
.setUnrestrictedUnidentifiedAccess(false)
|
||||||
.setCapabilities(ProfileGrpcHelper.buildAccountCapabilities(account))
|
.addAllCapabilities(ProfileGrpcHelper.buildAccountCapabilities(account))
|
||||||
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,6 @@ import org.mockito.ArgumentCaptor;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.signal.chat.common.IdentityType;
|
import org.signal.chat.common.IdentityType;
|
||||||
import org.signal.chat.common.ServiceIdentifier;
|
import org.signal.chat.common.ServiceIdentifier;
|
||||||
import org.signal.chat.profile.AccountCapabilities;
|
|
||||||
import org.signal.chat.profile.CredentialType;
|
import org.signal.chat.profile.CredentialType;
|
||||||
import org.signal.chat.profile.GetExpiringProfileKeyCredentialRequest;
|
import org.signal.chat.profile.GetExpiringProfileKeyCredentialRequest;
|
||||||
import org.signal.chat.profile.GetExpiringProfileKeyCredentialResponse;
|
import org.signal.chat.profile.GetExpiringProfileKeyCredentialResponse;
|
||||||
|
@ -439,9 +438,7 @@ public class ProfileGrpcServiceTest extends SimpleBaseGrpcTest<ProfileGrpcServic
|
||||||
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
.setIdentityKey(ByteString.copyFrom(identityKey.serialize()))
|
||||||
.setUnidentifiedAccess(ByteString.copyFrom(unidentifiedAccessChecksum))
|
.setUnidentifiedAccess(ByteString.copyFrom(unidentifiedAccessChecksum))
|
||||||
.setUnrestrictedUnidentifiedAccess(true)
|
.setUnrestrictedUnidentifiedAccess(true)
|
||||||
.setCapabilities(AccountCapabilities.newBuilder()
|
.addCapabilities(org.signal.chat.common.DeviceCapability.DEVICE_CAPABILITY_DELETE_SYNC)
|
||||||
.addCapabilities(org.signal.chat.common.DeviceCapability.DEVICE_CAPABILITY_DELETE_SYNC)
|
|
||||||
.build())
|
|
||||||
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
.addAllBadges(ProfileGrpcHelper.buildBadges(badges))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue