Skip to content

Commit 012079c

Browse files
fix doublicate check
1 parent 2136423 commit 012079c

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

src/objects/person.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ impl Object for user::Model {
190190

191191
async fn from_json(
192192
json: Self::Kind,
193-
_data: &Data<Self::DataType>,
193+
data: &Data<Self::DataType>,
194194
) -> Result<Self, Self::Error> {
195195
let query = User::find()
196-
.filter(user::Column::Id.eq(json.id.inner().as_str()))
197-
.one(_data.database_connection.as_ref())
196+
.filter(user::Column::Url.eq(json.id.inner().as_str()))
197+
.one(data.database_connection.as_ref())
198198
.await?;
199199
if let Some(user) = query {
200200
return Ok(user);
@@ -216,7 +216,7 @@ impl Object for user::Model {
216216
ap_json: Set(Some(serde_json::to_string(&copied_json).unwrap())),
217217
..Default::default()
218218
};
219-
let model = model.insert(_data.database_connection.as_ref()).await;
219+
let model = model.insert(data.database_connection.as_ref()).await;
220220
if let Err(err) = model {
221221
eprintln!("Error inserting user: {:?}", err);
222222
Err(err.into())

src/objects/post.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
use crate::{
2-
activities::create_post::CreatePost,
3-
database::StateHandle,
4-
entities::{post, user},
5-
error::Error,
6-
versia::conversion::db_user_from_url,
7-
objects::person::DbUser,
8-
utils::generate_object_id,
2+
activities::create_post::CreatePost, database::StateHandle, entities::{prelude::Post, user, post}, error::Error, objects::person::DbUser, utils::generate_object_id, versia::conversion::db_user_from_url
93
};
104
use activitypub_federation::{
115
config::Data,
@@ -120,6 +114,13 @@ impl Object for post::Model {
120114
"Received post with content {} and id {}",
121115
&json.content, &json.id
122116
);
117+
let query = Post::find()
118+
.filter(post::Column::Url.eq(json.id.inner().as_str()))
119+
.one(data.database_connection.as_ref())
120+
.await?;
121+
if let Some(post) = query {
122+
return Ok(post);
123+
}
123124
let creator = json.attributed_to.dereference(data).await?;
124125
let post: post::ActiveModel = post::ActiveModel {
125126
content: Set(json.content.clone()),

0 commit comments

Comments
 (0)