mirror of
https://github.com/chatmail/core.git
synced 2026-04-26 18:06:35 +03:00
feat: Add broadcast QR type (todo: documentation)
This commit is contained in:
@@ -47,6 +47,7 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul
|
||||
let hidden = match invite {
|
||||
QrInvite::Contact { .. } => Blocked::Not,
|
||||
QrInvite::Group { .. } => Blocked::Yes,
|
||||
QrInvite::Broadcast { .. } => Blocked::Yes,
|
||||
};
|
||||
let chat_id = ChatId::create_for_contact_with_blocked(context, invite.contact_id(), hidden)
|
||||
.await
|
||||
@@ -113,6 +114,7 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul
|
||||
chat::add_info_msg(context, group_chat_id, &msg, time()).await?;
|
||||
Ok(group_chat_id)
|
||||
}
|
||||
QrInvite::Broadcast { .. } => {}
|
||||
QrInvite::Contact { .. } => {
|
||||
// For setup-contact the BobState already ensured the 1:1 chat exists because it
|
||||
// uses it to send the handshake messages.
|
||||
|
||||
@@ -29,6 +29,13 @@ pub enum QrInvite {
|
||||
invitenumber: String,
|
||||
authcode: String,
|
||||
},
|
||||
Broadcast {
|
||||
broadcast_name: String,
|
||||
grpid: String,
|
||||
contact_id: ContactId,
|
||||
fingerprint: Fingerprint,
|
||||
shared_secret: String,
|
||||
},
|
||||
}
|
||||
|
||||
impl QrInvite {
|
||||
@@ -95,6 +102,19 @@ impl TryFrom<Qr> for QrInvite {
|
||||
invitenumber,
|
||||
authcode,
|
||||
}),
|
||||
Qr::AskJoinBroadcast {
|
||||
broadcast_name,
|
||||
grpid,
|
||||
contact_id,
|
||||
fingerprint,
|
||||
shared_secret,
|
||||
} => Ok(QrInvite::Broadcast {
|
||||
broadcast_name,
|
||||
grpid,
|
||||
contact_id,
|
||||
fingerprint,
|
||||
shared_secret,
|
||||
}),
|
||||
_ => bail!("Unsupported QR type"),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user