|
|
|
@ -74,24 +74,29 @@ pub async fn link_messages(
|
|
|
|
|
Ok(()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub async fn get_message_link_id( |
|
|
|
|
conn: &mut SqliteConnection, |
|
|
|
|
message: &ChatMessageReference, |
|
|
|
|
) -> sqlx::Result<i64> { |
|
|
|
|
let service = &message.channel.service; |
|
|
|
|
let channel = &message.channel.id; |
|
|
|
|
let message_id = &message.message_id; |
|
|
|
|
let query = sqlx::query!( |
|
|
|
|
"SELECT link_id FROM messages WHERE service = ? AND channel = ? AND message = ?", |
|
|
|
|
service, |
|
|
|
|
channel, |
|
|
|
|
message_id |
|
|
|
|
); |
|
|
|
|
let r = query.fetch_one(&mut *conn).await?; |
|
|
|
|
Ok(r.link_id) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub async fn get_linked_messages<'a>( |
|
|
|
|
conn: &'a mut SqliteConnection, |
|
|
|
|
dyn_service: DynServiceLookup, |
|
|
|
|
message: &ChatMessageReference, |
|
|
|
|
) -> sqlx::Result<BoxStream<'a, ChatMessageReference>> { |
|
|
|
|
let link_id = { |
|
|
|
|
let service = &message.channel.service; |
|
|
|
|
let channel = &message.channel.id; |
|
|
|
|
let message_id = &message.message_id; |
|
|
|
|
let query = sqlx::query!( |
|
|
|
|
"SELECT link_id FROM messages WHERE service = ? AND channel = ? AND message = ?", |
|
|
|
|
service, |
|
|
|
|
channel, |
|
|
|
|
message_id |
|
|
|
|
); |
|
|
|
|
query.fetch_one(&mut *conn).await |
|
|
|
|
}? |
|
|
|
|
.link_id; |
|
|
|
|
let link_id = get_message_link_id(&mut *conn, message).await?; |
|
|
|
|
|
|
|
|
|
let stream = sqlx::query("SELECT * FROM messages WHERE link_id = ?") |
|
|
|
|
.bind(link_id) |
|
|
|
|