Skip to content

Commit

Permalink
pluralize AddressOrInstallationId
Browse files Browse the repository at this point in the history
  • Loading branch information
insipx committed Dec 11, 2023
1 parent 42a6c6d commit cea2db4
Show file tree
Hide file tree
Showing 5 changed files with 294 additions and 297 deletions.
8 changes: 4 additions & 4 deletions xmtp_mls/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use xmtp_proto::api_client::{Envelope, XmtpApiClient, XmtpMlsClient};

use crate::{
api_client_wrapper::{ApiClientWrapper, IdentityUpdate},
groups::{AddressOrInstallationId, IntentError, MlsGroup},
groups::{AddressesOrInstallationIds, IntentError, MlsGroup},
identity::Identity,
retry::Retry,
storage::{
Expand Down Expand Up @@ -273,13 +273,13 @@ where

pub(crate) async fn get_key_packages(
&self,
address_or_id: AddressOrInstallationId,
address_or_id: AddressesOrInstallationIds,
) -> Result<Vec<VerifiedKeyPackage>, ClientError> {
match address_or_id {
AddressOrInstallationId::AccountAddresses(addrs) => {
AddressesOrInstallationIds::AccountAddresses(addrs) => {
self.get_key_packages_for_wallet_addresses(addrs).await
}
AddressOrInstallationId::InstallationIds(ids) => {
AddressesOrInstallationIds::InstallationIds(ids) => {
self.get_key_packages_for_installation_ids(ids).await
}
}
Expand Down
64 changes: 32 additions & 32 deletions xmtp_mls/src/groups/intents.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ use thiserror::Error;
use tls_codec::Serialize;
use xmtp_proto::xmtp::mls::database::{
add_members_data::{Version as AddMembersVersion, V1 as AddMembersV1},
address_or_installation_id::AddressOrInstallationId as AddressOrInstallationIdProto,
addresses_or_installation_ids::AddressesOrInstallationIds as AddressesOrInstallationIdsProto,
post_commit_action::{Kind as PostCommitActionKind, SendWelcomes as SendWelcomesProto},
remove_members_data::{Version as RemoveMembersVersion, V1 as RemoveMembersV1},
send_message_data::{Version as SendMessageVersion, V1 as SendMessageV1},
AccountAddresses, AddMembersData,
AddressOrInstallationId as AddressOrInstallationIdProtoWrapper, InstallationIds,
AddressesOrInstallationIds as AddressesOrInstallationIdsProtoWrapper, InstallationIds,
PostCommitAction as PostCommitActionProto, RemoveMembersData, SendMessageData,
};

Expand Down Expand Up @@ -68,27 +68,27 @@ impl From<SendMessageIntentData> for Vec<u8> {
}

#[derive(Debug, PartialEq, Eq, Clone)]
pub enum AddressOrInstallationId {
pub enum AddressesOrInstallationIds {
AccountAddresses(Vec<String>),
InstallationIds(Vec<Vec<u8>>),
}

impl From<AddressOrInstallationId> for AddressOrInstallationIdProtoWrapper {
fn from(address_or_id: AddressOrInstallationId) -> Self {
impl From<AddressesOrInstallationIds> for AddressesOrInstallationIdsProtoWrapper {
fn from(address_or_id: AddressesOrInstallationIds) -> Self {
match address_or_id {
AddressOrInstallationId::AccountAddresses(account_addresses) => {
AddressOrInstallationIdProtoWrapper {
address_or_installation_id: Some(
AddressOrInstallationIdProto::AccountAddresses(AccountAddresses {
AddressesOrInstallationIds::AccountAddresses(account_addresses) => {
AddressesOrInstallationIdsProtoWrapper {
addresses_or_installation_ids: Some(
AddressesOrInstallationIdsProto::AccountAddresses(AccountAddresses {
account_addresses,
}),
),
}
}
AddressOrInstallationId::InstallationIds(installation_ids) => {
AddressOrInstallationIdProtoWrapper {
address_or_installation_id: Some(
AddressOrInstallationIdProto::InstallationIds(InstallationIds {
AddressesOrInstallationIds::InstallationIds(installation_ids) => {
AddressesOrInstallationIdsProtoWrapper {
addresses_or_installation_ids: Some(
AddressesOrInstallationIdsProto::InstallationIds(InstallationIds {
installation_ids,
}),
),
Expand All @@ -98,49 +98,49 @@ impl From<AddressOrInstallationId> for AddressOrInstallationIdProtoWrapper {
}
}

impl TryFrom<AddressOrInstallationIdProtoWrapper> for AddressOrInstallationId {
impl TryFrom<AddressesOrInstallationIdsProtoWrapper> for AddressesOrInstallationIds {
type Error = IntentError;

fn try_from(wrapper: AddressOrInstallationIdProtoWrapper) -> Result<Self, Self::Error> {
match wrapper.address_or_installation_id {
Some(AddressOrInstallationIdProto::AccountAddresses(addrs)) => Ok(
AddressOrInstallationId::AccountAddresses(addrs.account_addresses),
fn try_from(wrapper: AddressesOrInstallationIdsProtoWrapper) -> Result<Self, Self::Error> {
match wrapper.addresses_or_installation_ids {
Some(AddressesOrInstallationIdsProto::AccountAddresses(addrs)) => Ok(
AddressesOrInstallationIds::AccountAddresses(addrs.account_addresses),
),
Some(AddressOrInstallationIdProto::InstallationIds(ids)) => Ok(
AddressOrInstallationId::InstallationIds(ids.installation_ids),
Some(AddressesOrInstallationIdsProto::InstallationIds(ids)) => Ok(
AddressesOrInstallationIds::InstallationIds(ids.installation_ids),
),
_ => Err(IntentError::Generic("missing payload".to_string())),
}
}
}

impl From<Vec<Address>> for AddressOrInstallationId {
impl From<Vec<Address>> for AddressesOrInstallationIds {
fn from(addrs: Vec<Address>) -> Self {
AddressOrInstallationId::AccountAddresses(addrs)
AddressesOrInstallationIds::AccountAddresses(addrs)
}
}

impl From<Vec<Vec<u8>>> for AddressOrInstallationId {
impl From<Vec<Vec<u8>>> for AddressesOrInstallationIds {
fn from(installation_ids: Vec<Vec<u8>>) -> Self {
AddressOrInstallationId::InstallationIds(installation_ids)
AddressesOrInstallationIds::InstallationIds(installation_ids)
}
}

#[derive(Debug, Clone)]
pub struct AddMembersIntentData {
pub address_or_id: AddressOrInstallationId,
pub address_or_id: AddressesOrInstallationIds,
}

impl AddMembersIntentData {
pub fn new(address_or_id: AddressOrInstallationId) -> Self {
pub fn new(address_or_id: AddressesOrInstallationIds) -> Self {
Self { address_or_id }
}

pub(crate) fn to_bytes(&self) -> Result<Vec<u8>, IntentError> {
let mut buf = Vec::new();
AddMembersData {
version: Some(AddMembersVersion::V1(AddMembersV1 {
address_or_installation_id: Some(self.address_or_id.clone().into()),
addresses_or_installation_ids: Some(self.address_or_id.clone().into()),
})),
}
.encode(&mut buf)
Expand All @@ -153,7 +153,7 @@ impl AddMembersIntentData {
let msg = AddMembersData::decode(data)?;
let address_or_id = match msg.version {
Some(AddMembersVersion::V1(v1)) => v1
.address_or_installation_id
.addresses_or_installation_ids
.ok_or(IntentError::Generic("missing payload".to_string()))?,
None => return Err(IntentError::Generic("missing payload".to_string())),
};
Expand All @@ -172,11 +172,11 @@ impl TryFrom<AddMembersIntentData> for Vec<u8> {

#[derive(Debug, Clone)]
pub struct RemoveMembersIntentData {
pub address_or_id: AddressOrInstallationId,
pub address_or_id: AddressesOrInstallationIds,
}

impl RemoveMembersIntentData {
pub fn new(address_or_id: AddressOrInstallationId) -> Self {
pub fn new(address_or_id: AddressesOrInstallationIds) -> Self {
Self { address_or_id }
}

Expand All @@ -185,7 +185,7 @@ impl RemoveMembersIntentData {

RemoveMembersData {
version: Some(RemoveMembersVersion::V1(RemoveMembersV1 {
address_or_installation_id: Some(self.address_or_id.clone().into()),
addresses_or_installation_ids: Some(self.address_or_id.clone().into()),
})),
}
.encode(&mut buf)
Expand All @@ -198,7 +198,7 @@ impl RemoveMembersIntentData {
let msg = RemoveMembersData::decode(data)?;
let address_or_id = match msg.version {
Some(RemoveMembersVersion::V1(v1)) => v1
.address_or_installation_id
.addresses_or_installation_ids
.ok_or(IntentError::Generic("missing payload".to_string()))?,
None => return Err(IntentError::Generic("missing payload".to_string())),
};
Expand Down
6 changes: 3 additions & 3 deletions xmtp_mls/src/groups/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use xmtp_cryptography::signature::{is_valid_ed25519_public_key, is_valid_ethereu
use xmtp_proto::api_client::{Envelope, XmtpApiClient, XmtpMlsClient};

use self::intents::{AddMembersIntentData, PostCommitAction, RemoveMembersIntentData};
pub use self::intents::{AddressOrInstallationId, IntentError};
pub use self::intents::{AddressesOrInstallationIds, IntentError};
use crate::{
api_client_wrapper::WelcomeMessage,
client::{ClientError, MessageProcessingError},
Expand Down Expand Up @@ -641,10 +641,10 @@ where

let installation_ids = {
match intent_data.address_or_id {
AddressOrInstallationId::AccountAddresses(addrs) => {
AddressesOrInstallationIds::AccountAddresses(addrs) => {
self.client.get_all_active_installation_ids(addrs).await?
}
AddressOrInstallationId::InstallationIds(ids) => ids,
AddressesOrInstallationIds::InstallationIds(ids) => ids,
}
};

Expand Down
Loading

0 comments on commit cea2db4

Please sign in to comment.