summaryrefslogtreecommitdiffstats
path: root/server/src/db/activity.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/db/activity.rs')
-rw-r--r--server/src/db/activity.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/server/src/db/activity.rs b/server/src/db/activity.rs
index ccd1e682..8c2b0c74 100644
--- a/server/src/db/activity.rs
+++ b/server/src/db/activity.rs
@@ -1,9 +1,9 @@
-use crate::{db::Crud, schema::activity};
+use crate::{blocking, db::Crud, schema::activity, DbPool, LemmyError};
use diesel::{dsl::*, result::Error, *};
-use failure::_core::fmt::Debug;
use log::debug;
use serde::{Deserialize, Serialize};
use serde_json::Value;
+use std::fmt::Debug;
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
#[table_name = "activity"]
@@ -55,12 +55,28 @@ impl Crud<ActivityForm> for Activity {
}
}
-pub fn insert_activity<T>(
+pub async fn insert_activity<T>(
+ user_id: i32,
+ data: T,
+ local: bool,
+ pool: &DbPool,
+) -> Result<(), LemmyError>
+where
+ T: Serialize + Debug + Send + 'static,
+{
+ blocking(pool, move |conn| {
+ do_insert_activity(conn, user_id, &data, local)
+ })
+ .await??;
+ Ok(())
+}
+
+fn do_insert_activity<T>(
conn: &PgConnection,
user_id: i32,
data: &T,
local: bool,
-) -> Result<(), failure::Error>
+) -> Result<(), LemmyError>
where
T: Serialize + Debug,
{