Remove user_id column from actvity table

This commit is contained in:
Felix Ableitner 2020-11-05 16:37:55 +01:00
parent 5e2a5c0266
commit 8e3ee367f4
9 changed files with 5 additions and 46 deletions

View file

@ -42,10 +42,6 @@ impl ActorType for Community {
self.private_key.to_owned() self.private_key.to_owned()
} }
fn user_id(&self) -> i32 {
self.creator_id
}
async fn send_follow( async fn send_follow(
&self, &self,
_follow_actor_id: &Url, _follow_actor_id: &Url,

View file

@ -32,10 +32,6 @@ impl ActorType for User_ {
self.private_key.to_owned() self.private_key.to_owned()
} }
fn user_id(&self) -> i32 {
self.id
}
/// As a given local user, send out a follow request to a remote community. /// As a given local user, send out a follow request to a remote community.
async fn send_follow( async fn send_follow(
&self, &self,

View file

@ -219,7 +219,7 @@ where
// might send the same ap_id // might send the same ap_id
if insert_into_db { if insert_into_db {
let id = activity.id().context(location_info!())?; let id = activity.id().context(location_info!())?;
insert_activity(id, actor.user_id(), activity.clone(), true, pool).await?; insert_activity(id, activity.clone(), true, pool).await?;
} }
for i in inboxes { for i in inboxes {

View file

@ -88,20 +88,12 @@ pub async fn community_inbox(
let any_base = activity.clone().into_any_base()?; let any_base = activity.clone().into_any_base()?;
let kind = activity.kind().context(location_info!())?; let kind = activity.kind().context(location_info!())?;
let user_id = user.id;
let res = match kind { let res = match kind {
ValidTypes::Follow => handle_follow(any_base, user, community, &context).await, ValidTypes::Follow => handle_follow(any_base, user, community, &context).await,
ValidTypes::Undo => handle_undo_follow(any_base, user, community, &context).await, ValidTypes::Undo => handle_undo_follow(any_base, user, community, &context).await,
}; };
insert_activity( insert_activity(&activity_id, activity.clone(), false, context.pool()).await?;
&activity_id,
user_id,
activity.clone(),
false,
context.pool(),
)
.await?;
res res
} }

View file

@ -125,14 +125,7 @@ pub async fn shared_inbox(
ValidTypes::Undo => receive_undo(&context, any_base, actor_id, request_counter).await, ValidTypes::Undo => receive_undo(&context, any_base, actor_id, request_counter).await,
}; };
insert_activity( insert_activity(&activity_id, activity.clone(), false, context.pool()).await?;
&activity_id,
actor.user_id(),
activity.clone(),
false,
context.pool(),
)
.await?;
res res
} }

View file

@ -107,14 +107,7 @@ pub async fn user_inbox(
} }
}; };
insert_activity( insert_activity(&activity_id, activity.clone(), false, context.pool()).await?;
&activity_id,
actor.user_id(),
activity.clone(),
false,
context.pool(),
)
.await?;
res res
} }

View file

@ -169,9 +169,6 @@ pub trait ActorType {
fn public_key(&self) -> Option<String>; fn public_key(&self) -> Option<String>;
fn private_key(&self) -> Option<String>; fn private_key(&self) -> Option<String>;
/// numeric id in the database, used for insert_activity
fn user_id(&self) -> i32;
async fn send_follow( async fn send_follow(
&self, &self,
follow_actor_id: &Url, follow_actor_id: &Url,
@ -256,7 +253,6 @@ pub trait ActorType {
/// persistent. /// persistent.
pub async fn insert_activity<T>( pub async fn insert_activity<T>(
ap_id: &Url, ap_id: &Url,
user_id: i32,
activity: T, activity: T,
local: bool, local: bool,
pool: &DbPool, pool: &DbPool,
@ -266,7 +262,7 @@ where
{ {
let ap_id = ap_id.to_string(); let ap_id = ap_id.to_string();
blocking(pool, move |conn| { blocking(pool, move |conn| {
Activity::insert(conn, ap_id, user_id, &activity, local) Activity::insert(conn, ap_id, &activity, local)
}) })
.await??; .await??;
Ok(()) Ok(())

View file

@ -13,7 +13,6 @@ use std::{
pub struct Activity { pub struct Activity {
pub id: i32, pub id: i32,
pub ap_id: String, pub ap_id: String,
pub user_id: i32,
pub data: Value, pub data: Value,
pub local: bool, pub local: bool,
pub published: chrono::NaiveDateTime, pub published: chrono::NaiveDateTime,
@ -24,7 +23,6 @@ pub struct Activity {
#[table_name = "activity"] #[table_name = "activity"]
pub struct ActivityForm { pub struct ActivityForm {
pub ap_id: String, pub ap_id: String,
pub user_id: i32,
pub data: Value, pub data: Value,
pub local: bool, pub local: bool,
pub updated: Option<chrono::NaiveDateTime>, pub updated: Option<chrono::NaiveDateTime>,
@ -59,18 +57,15 @@ impl Activity {
pub fn insert<T>( pub fn insert<T>(
conn: &PgConnection, conn: &PgConnection,
ap_id: String, ap_id: String,
user_id: i32,
data: &T, data: &T,
local: bool, local: bool,
) -> Result<Self, IoError> ) -> Result<Self, IoError>
where where
T: Serialize + Debug, T: Serialize + Debug,
{ {
debug!("inserting activity for user {}: ", user_id);
debug!("{}", serde_json::to_string_pretty(&data)?); debug!("{}", serde_json::to_string_pretty(&data)?);
let activity_form = ActivityForm { let activity_form = ActivityForm {
ap_id, ap_id,
user_id,
data: serde_json::to_value(&data)?, data: serde_json::to_value(&data)?,
local, local,
updated: None, updated: None,

View file

@ -2,7 +2,6 @@ table! {
activity (id) { activity (id) {
id -> Int4, id -> Int4,
ap_id -> Text, ap_id -> Text,
user_id -> Int4,
data -> Jsonb, data -> Jsonb,
local -> Bool, local -> Bool,
published -> Timestamp, published -> Timestamp,
@ -481,7 +480,6 @@ table! {
} }
} }
joinable!(activity -> user_ (user_id));
joinable!(comment -> post (post_id)); joinable!(comment -> post (post_id));
joinable!(comment -> user_ (creator_id)); joinable!(comment -> user_ (creator_id));
joinable!(comment_like -> comment (comment_id)); joinable!(comment_like -> comment (comment_id));