Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(groups): add a worker to delete expired messages #1503

Merged
merged 31 commits into from
Jan 27, 2025
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
843faee
wip
mchenani Jan 14, 2025
8bd7422
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 14, 2025
9e84a95
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 14, 2025
5a994fd
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 16, 2025
b9be121
add group message expiration setting to db
mchenani Jan 16, 2025
255c6f8
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 16, 2025
22e3eff
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 17, 2025
ecd3b92
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 17, 2025
8e7835b
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 20, 2025
1dcb898
rename to ConversationMessageDisappearingSettings
mchenani Jan 20, 2025
d62cac0
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 21, 2025
354b7e6
wip
mchenani Jan 21, 2025
1b11016
extract disappearing messages worker to a separate file
mchenani Jan 21, 2025
508c792
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 21, 2025
8951e87
store metadatas into db
mchenani Jan 23, 2025
de91ebf
remove comments
mchenani Jan 23, 2025
62e2aae
wip
mchenani Jan 23, 2025
c3a3f91
add test
mchenani Jan 24, 2025
6f54733
fix tests
mchenani Jan 24, 2025
0825f6b
fix tests
mchenani Jan 24, 2025
3911e8f
address comments
mchenani Jan 24, 2025
736fc06
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 24, 2025
6bf97ed
fix clippy
mchenani Jan 27, 2025
bf2b894
fix clippy
mchenani Jan 27, 2025
e6136cb
fix clippy
mchenani Jan 27, 2025
c783def
Merge branch 'main' into mc/disappearning-messages-worker
mchenani Jan 27, 2025
1a527a9
fix napi and address comments
mchenani Jan 27, 2025
fbdd11f
add comments to messageDisappearingSettings
mchenani Jan 27, 2025
aeccd04
fix missing mappings
mchenani Jan 27, 2025
9ec0034
fix bindings_node
mchenani Jan 27, 2025
94f5b34
fix bindings_node
mchenani Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
wip
mchenani committed Jan 23, 2025
commit 62e2aaeec83064fb9fd313c8fccdfe8ca443da51
17 changes: 12 additions & 5 deletions bindings_ffi/src/mls.rs
Original file line number Diff line number Diff line change
@@ -822,7 +822,7 @@ impl TryFrom<FfiPermissionPolicySet> for PolicySet {
MetadataField::GroupPinnedFrameUrl.to_string(),
policy_set.update_group_pinned_frame_url_policy.try_into()?,
);
// MessageExpirationFromMillis follows the same policy as MessageExpirationMillis
// MessageDisappearFromNS follows the same policy as MessageDisappearInNS
metadata_permissions_map.insert(
MetadataField::MessageDisappearFromNS.to_string(),
policy_set
@@ -1298,7 +1298,7 @@ impl FfiConversationListItem {
}
}

#[derive(uniffi::Record, Debug)]
#[derive(uniffi::Record, Clone, Debug)]
pub struct FfiConversationMessageDisappearingSettings {
pub from_ns: i64,
pub in_ns: i64,
@@ -1310,6 +1310,12 @@ impl FfiConversationMessageDisappearingSettings {
}
}

impl From<ConversationMessageDisappearingSettings> for FfiConversationMessageDisappearingSettings {
fn from(value: ConversationMessageDisappearingSettings) -> Self {
FfiConversationMessageDisappearingSettings::new(value.from_ns, value.in_ns)
}
}

impl From<MlsGroup<RustXmtpClient>> for FfiConversation {
fn from(mls_group: MlsGroup<RustXmtpClient>) -> FfiConversation {
FfiConversation { inner: mls_group }
@@ -1475,8 +1481,7 @@ pub struct FfiCreateGroupOptions {
pub group_description: Option<String>,
pub group_pinned_frame_url: Option<String>,
pub custom_permission_policy_set: Option<FfiPermissionPolicySet>,
pub message_disappear_from_ns: Option<i64>,
pub message_disappear_in_ns: Option<i64>,
pub message_disappearing_settings: Option<FfiConversationMessageDisappearingSettings>,
}

impl FfiCreateGroupOptions {
@@ -1486,7 +1491,9 @@ impl FfiCreateGroupOptions {
image_url_square: self.group_image_url_square,
description: self.group_description,
pinned_frame_url: self.group_pinned_frame_url,
message_disappearing_settings: None,
message_disappearing_settings: self
.message_disappearing_settings
.map(|settings| settings.into()),
}
}
}
11 changes: 9 additions & 2 deletions bindings_node/src/conversation.rs
Original file line number Diff line number Diff line change
@@ -38,10 +38,11 @@ pub struct GroupMetadata {
inner: XmtpGroupMetadata,
}

#[napi]
#[napi(object)]
#[derive(Clone)]
pub struct ConversationMessageDisappearingSettings {
inner: XmtpConversationMessageDisappearingSettings,
#[napi]
pub inner: XmtpConversationMessageDisappearingSettings,
}

#[napi]
@@ -53,6 +54,12 @@ impl ConversationMessageDisappearingSettings {
}
}

impl From<ConversationMessageDisappearingSettings> for XmtpConversationMessageDisappearingSettings {
fn from(value: ConversationMessageDisappearingSettings) -> Self {
XmtpConversationMessageDisappearingSettings::new(value.inner.from_ns, value.inner.in_ns)
}
}

#[napi]
impl GroupMetadata {
#[napi]
4 changes: 3 additions & 1 deletion bindings_node/src/conversations.rs
Original file line number Diff line number Diff line change
@@ -133,7 +133,9 @@ impl CreateGroupOptions {
image_url_square: self.group_image_url_square,
description: self.group_description,
pinned_frame_url: self.group_pinned_frame_url,
message_disappearing_settings: None, //todo: fix mapping,
message_disappearing_settings: self
.message_disappearing_settings
.map(|settings| settings.into()),
}
}
}
2 changes: 1 addition & 1 deletion xmtp_mls/src/groups/group_mutable_metadata.rs
Original file line number Diff line number Diff line change
@@ -69,7 +69,7 @@ impl fmt::Display for MetadataField {
}
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, PartialEq)]
pub struct ConversationMessageDisappearingSettings {
pub from_ns: i64,
pub in_ns: i64,