From 04ba1ae48df8c493c2c357a86dd8d6ceb7f78617 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Mon, 4 Dec 2023 15:15:43 +0100 Subject: [PATCH] fix duplicate article test --- src/api.rs | 3 ++- src/database/article.rs | 7 +++++++ src/federation/objects/article.rs | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index b35078b..c2c8da2 100644 --- a/src/api.rs +++ b/src/api.rs @@ -60,7 +60,8 @@ async fn create_article( instance_id: local_instance.id, local: true, }; - let article = DbArticle::create(&form, &data.db_connection)?; + dbg!(&form.ap_id); + let article = dbg!(DbArticle::create(&form, &data.db_connection))?; CreateArticle::send_to_followers(article.clone(), &data).await?; diff --git a/src/database/article.rs b/src/database/article.rs index 8126460..38a2c7a 100644 --- a/src/database/article.rs +++ b/src/database/article.rs @@ -52,6 +52,13 @@ impl DbArticle { } pub fn create(form: &DbArticleForm, conn: &Mutex) -> MyResult { + let mut conn = conn.lock().unwrap(); + Ok(insert_into(article::table) + .values(form) + .get_result(conn.deref_mut())?) + } + + pub fn create_or_update(form: &DbArticleForm, conn: &Mutex) -> MyResult { let mut conn = conn.lock().unwrap(); Ok(insert_into(article::table) .values(form) diff --git a/src/federation/objects/article.rs b/src/federation/objects/article.rs index 9cec8ca..e73299b 100644 --- a/src/federation/objects/article.rs +++ b/src/federation/objects/article.rs @@ -76,7 +76,7 @@ impl Object for DbArticle { local: false, instance_id: instance.id, }; - let article = DbArticle::create(&form, &data.db_connection)?; + let article = DbArticle::create_or_update(&form, &data.db_connection)?; json.edits.dereference(&article, data).await?;