@@ -26,7 +26,7 @@ use super::*;
2626use crate :: command:: actions:: MailboxOperation ;
2727
2828impl Account {
29- pub fn mailbox_operation ( & mut self , op : MailboxOperation ) -> Result < ( ) > {
29+ pub fn mailbox_operation ( & mut self , op : MailboxOperation ) -> Result < JobId > {
3030 if self . settings . account . read_only {
3131 return Err ( Error :: new ( "Account is read-only." ) ) ;
3232 }
@@ -42,11 +42,12 @@ impl Account {
4242 job,
4343 self . is_async ( ) ,
4444 ) ;
45+ let job_id = handle. job_id ;
4546 self . insert_job (
4647 handle. job_id ,
4748 JobRequest :: Mailbox ( MailboxJobRequest :: CreateMailbox { path, handle } ) ,
4849 ) ;
49- Ok ( ( ) )
50+ Ok ( job_id )
5051 }
5152 MailboxOperation :: Delete ( path) => {
5253 if self . mailbox_entries . len ( ) == 1 {
@@ -60,14 +61,15 @@ impl Account {
6061 job,
6162 self . is_async ( ) ,
6263 ) ;
64+ let job_id = handle. job_id ;
6365 self . insert_job (
6466 handle. job_id ,
6567 JobRequest :: Mailbox ( MailboxJobRequest :: DeleteMailbox {
6668 mailbox_hash,
6769 handle,
6870 } ) ,
6971 ) ;
70- Ok ( ( ) )
72+ Ok ( job_id )
7173 }
7274 MailboxOperation :: Subscribe ( path) => {
7375 let mailbox_hash = self . mailbox_by_path ( & path) ?;
@@ -81,6 +83,7 @@ impl Account {
8183 job,
8284 self . is_async ( ) ,
8385 ) ;
86+ let job_id = handle. job_id ;
8487 self . insert_job (
8588 handle. job_id ,
8689 JobRequest :: Mailbox ( MailboxJobRequest :: SetMailboxSubscription {
@@ -89,7 +92,7 @@ impl Account {
8992 handle,
9093 } ) ,
9194 ) ;
92- Ok ( ( ) )
95+ Ok ( job_id )
9396 }
9497 MailboxOperation :: Unsubscribe ( path) => {
9598 let mailbox_hash = self . mailbox_by_path ( & path) ?;
@@ -103,15 +106,16 @@ impl Account {
103106 job,
104107 self . is_async ( ) ,
105108 ) ;
109+ let job_id = handle. job_id ;
106110 self . insert_job (
107- handle . job_id ,
111+ job_id,
108112 JobRequest :: Mailbox ( MailboxJobRequest :: SetMailboxSubscription {
109113 mailbox_hash,
110114 new_value : false ,
111115 handle,
112116 } ) ,
113117 ) ;
114- Ok ( ( ) )
118+ Ok ( job_id )
115119 }
116120 MailboxOperation :: Rename ( path, new_path) => {
117121 let mailbox_hash = self . mailbox_by_path ( & path) ?;
@@ -125,15 +129,16 @@ impl Account {
125129 job,
126130 self . is_async ( ) ,
127131 ) ;
132+ let job_id = handle. job_id ;
128133 self . insert_job (
129- handle . job_id ,
134+ job_id,
130135 JobRequest :: Mailbox ( MailboxJobRequest :: RenameMailbox {
131136 handle,
132137 mailbox_hash,
133138 new_path,
134139 } ) ,
135140 ) ;
136- Ok ( ( ) )
141+ Ok ( job_id )
137142 }
138143 MailboxOperation :: SetPermissions ( _) => Err ( Error :: new ( "Not implemented." ) ) ,
139144 }
0 commit comments