mirror of
https://github.com/versia-pub/activitypub.git
synced 2025-12-06 06:38:20 +01:00
fix doublicate check
This commit is contained in:
parent
21364237c5
commit
012079cd9b
|
|
@ -190,11 +190,11 @@ impl Object for user::Model {
|
||||||
|
|
||||||
async fn from_json(
|
async fn from_json(
|
||||||
json: Self::Kind,
|
json: Self::Kind,
|
||||||
_data: &Data<Self::DataType>,
|
data: &Data<Self::DataType>,
|
||||||
) -> Result<Self, Self::Error> {
|
) -> Result<Self, Self::Error> {
|
||||||
let query = User::find()
|
let query = User::find()
|
||||||
.filter(user::Column::Id.eq(json.id.inner().as_str()))
|
.filter(user::Column::Url.eq(json.id.inner().as_str()))
|
||||||
.one(_data.database_connection.as_ref())
|
.one(data.database_connection.as_ref())
|
||||||
.await?;
|
.await?;
|
||||||
if let Some(user) = query {
|
if let Some(user) = query {
|
||||||
return Ok(user);
|
return Ok(user);
|
||||||
|
|
@ -216,7 +216,7 @@ impl Object for user::Model {
|
||||||
ap_json: Set(Some(serde_json::to_string(&copied_json).unwrap())),
|
ap_json: Set(Some(serde_json::to_string(&copied_json).unwrap())),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
let model = model.insert(_data.database_connection.as_ref()).await;
|
let model = model.insert(data.database_connection.as_ref()).await;
|
||||||
if let Err(err) = model {
|
if let Err(err) = model {
|
||||||
eprintln!("Error inserting user: {:?}", err);
|
eprintln!("Error inserting user: {:?}", err);
|
||||||
Err(err.into())
|
Err(err.into())
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
activities::create_post::CreatePost,
|
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
|
||||||
database::StateHandle,
|
|
||||||
entities::{post, user},
|
|
||||||
error::Error,
|
|
||||||
versia::conversion::db_user_from_url,
|
|
||||||
objects::person::DbUser,
|
|
||||||
utils::generate_object_id,
|
|
||||||
};
|
};
|
||||||
use activitypub_federation::{
|
use activitypub_federation::{
|
||||||
config::Data,
|
config::Data,
|
||||||
|
|
@ -120,6 +114,13 @@ impl Object for post::Model {
|
||||||
"Received post with content {} and id {}",
|
"Received post with content {} and id {}",
|
||||||
&json.content, &json.id
|
&json.content, &json.id
|
||||||
);
|
);
|
||||||
|
let query = Post::find()
|
||||||
|
.filter(post::Column::Url.eq(json.id.inner().as_str()))
|
||||||
|
.one(data.database_connection.as_ref())
|
||||||
|
.await?;
|
||||||
|
if let Some(post) = query {
|
||||||
|
return Ok(post);
|
||||||
|
}
|
||||||
let creator = json.attributed_to.dereference(data).await?;
|
let creator = json.attributed_to.dereference(data).await?;
|
||||||
let post: post::ActiveModel = post::ActiveModel {
|
let post: post::ActiveModel = post::ActiveModel {
|
||||||
content: Set(json.content.clone()),
|
content: Set(json.content.clone()),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue