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?;