@@ -166,7 +166,7 @@ pub async fn get_latest_thread_message(
166166 r#"
167167 SELECT id, thread_id, user_id, user_name, is_anonymous,
168168 dm_message_id, inbox_message_id, message_number,
169- created_at as "created_at: String", content
169+ created_at as "created_at: String", content, is_internal
170170 FROM thread_messages
171171 WHERE thread_id = ?
172172 ORDER BY created_at DESC
@@ -188,6 +188,7 @@ pub async fn get_latest_thread_message(
188188 message_number : row. message_number ,
189189 _created_at : row. created_at ,
190190 content : row. content ,
191+ _is_internal : row. is_internal ,
191192 } ) ;
192193
193194 Ok ( latest)
@@ -259,6 +260,49 @@ pub async fn insert_user_message_with_ids(
259260 Ok ( ( ) )
260261}
261262
263+ pub async fn insert_internal_message (
264+ ctx : & Context ,
265+ msg : & Message ,
266+ thread_id : & str ,
267+ pool : & SqlitePool ,
268+ config : & Config ,
269+ ) -> Result < ( ) , Error > {
270+ let user_id = msg. author . id . get ( ) as i64 ;
271+ let inbox_message_id = msg. id . to_string ( ) ;
272+
273+ let user_name = msg
274+ . author
275+ . id
276+ . to_user ( & ctx. http )
277+ . await
278+ . map ( |user| user. name )
279+ . unwrap_or_else ( |_| "Unknown" . to_string ( ) ) ;
280+
281+ let content = extract_message_content ( msg, config) ;
282+
283+ sqlx:: query!(
284+ r#"
285+ INSERT INTO thread_messages (
286+ thread_id, user_id, user_name, is_anonymous, inbox_message_id, content, thread_status, is_internal
287+ ) VALUES (
288+ ?, ?, ?, ?, ?, ?, ?, ?
289+ )
290+ "# ,
291+ thread_id,
292+ user_id,
293+ user_name,
294+ false ,
295+ inbox_message_id,
296+ content,
297+ 1 ,
298+ true
299+ )
300+ . execute ( pool)
301+ . await ?;
302+
303+ Ok ( ( ) )
304+ }
305+
262306pub async fn get_thread_message_by_inbox_message_id (
263307 inbox_message_id : & str ,
264308 pool : & SqlitePool ,
@@ -267,7 +311,7 @@ pub async fn get_thread_message_by_inbox_message_id(
267311 r#"
268312 SELECT id, thread_id, user_id, user_name, is_anonymous,
269313 dm_message_id, inbox_message_id, message_number,
270- created_at as "created_at: String", content
314+ created_at as "created_at: String", content, is_internal
271315 FROM thread_messages
272316 WHERE inbox_message_id = ?
273317 ORDER BY created_at DESC
@@ -289,6 +333,7 @@ pub async fn get_thread_message_by_inbox_message_id(
289333 message_number : row. message_number ,
290334 _created_at : row. created_at ,
291335 content : row. content ,
336+ _is_internal : row. is_internal ,
292337 } ) {
293338 Some ( row) => row,
294339 None => {
@@ -309,7 +354,7 @@ pub async fn get_thread_message_by_message_id(
309354 r#"
310355 SELECT id, thread_id, user_id, user_name, is_anonymous,
311356 dm_message_id, inbox_message_id, message_number,
312- created_at as "created_at: String", content
357+ created_at as "created_at: String", content, is_internal
313358 FROM thread_messages
314359 WHERE dm_message_id = ? OR inbox_message_id = ?
315360 ORDER BY created_at DESC
@@ -332,6 +377,7 @@ pub async fn get_thread_message_by_message_id(
332377 message_number : row. message_number ,
333378 _created_at : row. created_at ,
334379 content : row. content ,
380+ _is_internal : row. is_internal ,
335381 } ) {
336382 Some ( row) => row,
337383 None => {
@@ -354,7 +400,7 @@ pub async fn get_thread_message_by_dm_message_id(
354400 r#"
355401 SELECT id, thread_id, user_id, user_name, is_anonymous,
356402 dm_message_id, inbox_message_id, message_number,
357- created_at as "created_at: String", content
403+ created_at as "created_at: String", content, is_internal
358404 FROM thread_messages
359405 WHERE dm_message_id = ?
360406 AND thread_status = 1
@@ -377,6 +423,7 @@ pub async fn get_thread_message_by_dm_message_id(
377423 message_number : row. message_number ,
378424 _created_at : row. created_at ,
379425 content : row. content ,
426+ _is_internal : row. is_internal ,
380427 } ) {
381428 Some ( row) => row,
382429 None => {
@@ -401,4 +448,5 @@ pub struct ThreadMessage {
401448 pub message_number : Option < i64 > ,
402449 pub _created_at : String ,
403450 pub content : String ,
451+ pub _is_internal : bool ,
404452}
0 commit comments