@@ -1135,9 +1135,11 @@ impl CommandApi {
11351135 async fn get_message ( & self , account_id : u32 , msg_id : u32 ) -> Result < MessageObject > {
11361136 let ctx = self . get_context ( account_id) . await ?;
11371137 let msg_id = MsgId :: new ( msg_id) ;
1138- MessageObject :: from_msg_id ( & ctx, msg_id)
1138+ let message_object = MessageObject :: from_msg_id ( & ctx, msg_id)
11391139 . await
1140- . with_context ( || format ! ( "Failed to load message {msg_id} for account {account_id}" ) )
1140+ . with_context ( || format ! ( "Failed to load message {msg_id} for account {account_id}" ) ) ?
1141+ . with_context ( || format ! ( "Message {msg_id} does not exist for account {account_id}" ) ) ?;
1142+ Ok ( message_object)
11411143 }
11421144
11431145 async fn get_message_html ( & self , account_id : u32 , message_id : u32 ) -> Result < Option < String > > {
@@ -1161,7 +1163,10 @@ impl CommandApi {
11611163 messages. insert (
11621164 message_id,
11631165 match message_result {
1164- Ok ( message) => MessageLoadResult :: Message ( message) ,
1166+ Ok ( Some ( message) ) => MessageLoadResult :: Message ( message) ,
1167+ Ok ( None ) => MessageLoadResult :: LoadingError {
1168+ error : "Message does not exist" . to_string ( ) ,
1169+ } ,
11651170 Err ( error) => MessageLoadResult :: LoadingError {
11661171 error : format ! ( "{error:#}" ) ,
11671172 } ,
@@ -1999,9 +2004,7 @@ impl CommandApi {
19992004 async fn get_draft ( & self , account_id : u32 , chat_id : u32 ) -> Result < Option < MessageObject > > {
20002005 let ctx = self . get_context ( account_id) . await ?;
20012006 if let Some ( draft) = ChatId :: new ( chat_id) . get_draft ( & ctx) . await ? {
2002- Ok ( Some (
2003- MessageObject :: from_msg_id ( & ctx, draft. get_id ( ) ) . await ?,
2004- ) )
2007+ Ok ( MessageObject :: from_msg_id ( & ctx, draft. get_id ( ) ) . await ?)
20052008 } else {
20062009 Ok ( None )
20072010 }
@@ -2170,7 +2173,9 @@ impl CommandApi {
21702173 . await ?;
21712174 }
21722175 let msg_id = chat:: send_msg ( & ctx, ChatId :: new ( chat_id) , & mut message) . await ?;
2173- let message = MessageObject :: from_msg_id ( & ctx, msg_id) . await ?;
2176+ let message = MessageObject :: from_msg_id ( & ctx, msg_id)
2177+ . await ?
2178+ . context ( "Just sent message does not exist" ) ?;
21742179 Ok ( ( msg_id. to_u32 ( ) , message) )
21752180 }
21762181
0 commit comments