parent
5c2b93ee18
commit
4c32bf450d
|
@ -1048,8 +1048,48 @@ impl Account {
|
||||||
|
|
||||||
Ok(format!("'`{}` has been deleted.", &path))
|
Ok(format!("'`{}` has been deleted.", &path))
|
||||||
}
|
}
|
||||||
MailboxOperation::Subscribe(_) => Err(MeliError::new("Not implemented.")),
|
MailboxOperation::Subscribe(path) => {
|
||||||
MailboxOperation::Unsubscribe(_) => Err(MeliError::new("Not implemented.")),
|
let mailbox_hash = if let Some((mailbox_hash, _)) = self
|
||||||
|
.mailbox_entries
|
||||||
|
.iter()
|
||||||
|
.find(|(_, f)| f.ref_mailbox.path() == path)
|
||||||
|
{
|
||||||
|
*mailbox_hash
|
||||||
|
} else {
|
||||||
|
return Err(MeliError::new("Mailbox with that path not found."));
|
||||||
|
};
|
||||||
|
self.backend
|
||||||
|
.write()
|
||||||
|
.unwrap()
|
||||||
|
.set_mailbox_subscription(mailbox_hash, true)?;
|
||||||
|
self.mailbox_entries.entry(mailbox_hash).and_modify(|m| {
|
||||||
|
m.conf.mailbox_conf.subscribe = super::ToggleFlag::True;
|
||||||
|
let _ = m.ref_mailbox.set_is_subscribed(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(format!("'`{}` has been subscribed.", &path))
|
||||||
|
}
|
||||||
|
MailboxOperation::Unsubscribe(path) => {
|
||||||
|
let mailbox_hash = if let Some((mailbox_hash, _)) = self
|
||||||
|
.mailbox_entries
|
||||||
|
.iter()
|
||||||
|
.find(|(_, f)| f.ref_mailbox.path() == path)
|
||||||
|
{
|
||||||
|
*mailbox_hash
|
||||||
|
} else {
|
||||||
|
return Err(MeliError::new("Mailbox with that path not found."));
|
||||||
|
};
|
||||||
|
self.backend
|
||||||
|
.write()
|
||||||
|
.unwrap()
|
||||||
|
.set_mailbox_subscription(mailbox_hash, false)?;
|
||||||
|
self.mailbox_entries.entry(mailbox_hash).and_modify(|m| {
|
||||||
|
m.conf.mailbox_conf.subscribe = super::ToggleFlag::False;
|
||||||
|
let _ = m.ref_mailbox.set_is_subscribed(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(format!("'`{}` has been unsubscribed.", &path))
|
||||||
|
}
|
||||||
MailboxOperation::Rename(_, _) => Err(MeliError::new("Not implemented.")),
|
MailboxOperation::Rename(_, _) => Err(MeliError::new("Not implemented.")),
|
||||||
MailboxOperation::SetPermissions(_) => Err(MeliError::new("Not implemented.")),
|
MailboxOperation::SetPermissions(_) => Err(MeliError::new("Not implemented.")),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue