diff options
author | Dessalines <tyhou13@gmx.com> | 2020-04-21 10:25:29 -0400 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-04-21 10:25:29 -0400 |
commit | f0026065f5f809d2038ca91d7880becb39b0f9a7 (patch) | |
tree | fdb76bb60d89bc56f1e60deaa2a5d62fb5a9edc8 /server/src/api/mod.rs | |
parent | 2f4b3a4f833ce277ab989626a6210167ce47c29e (diff) | |
parent | b98fa1274151f61b13679aa30f332686bc9645f3 (diff) |
Merge branch 'master' into federation_merge_from_master_1
Diffstat (limited to 'server/src/api/mod.rs')
-rw-r--r-- | server/src/api/mod.rs | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/server/src/api/mod.rs b/server/src/api/mod.rs index e4fdfee6..f654167f 100644 --- a/server/src/api/mod.rs +++ b/server/src/api/mod.rs @@ -18,12 +18,31 @@ use crate::db::user_mention_view::*; use crate::db::user_view::*; use crate::db::*; use crate::{ - extract_usernames, fetch_iframely_and_pictshare_data, naive_from_unix, naive_now, remove_slurs, - slur_check, slurs_vec_to_str, + extract_usernames, fetch_iframely_and_pictshare_data, generate_random_string, naive_from_unix, + naive_now, remove_slurs, send_email, slur_check, slurs_vec_to_str, }; + +use crate::apub::{ + activities::{follow_community, post_create, post_update}, + fetcher::search_by_apub_id, + signatures::generate_actor_keypair, + {make_apub_endpoint, EndpointType}, +}; +use crate::settings::Settings; +use crate::websocket::UserOperation; +use crate::websocket::{ + server::{ + JoinCommunityRoom, JoinPostRoom, JoinUserRoom, SendAllMessage, SendComment, + SendCommunityRoomMessage, SendPost, SendUserRoomMessage, + }, + WebsocketInfo, +}; +use diesel::r2d2::{ConnectionManager, Pool}; use diesel::PgConnection; use failure::Error; +use log::{debug, error, info}; use serde::{Deserialize, Serialize}; +use std::str::FromStr; pub mod comment; pub mod community; @@ -55,8 +74,12 @@ impl<T> Oper<T> { } } -pub trait Perform<T> { - fn perform(&self, conn: &PgConnection) -> Result<T, Error> - where - T: Sized; +pub trait Perform { + type Response: serde::ser::Serialize; + + fn perform( + &self, + pool: Pool<ConnectionManager<PgConnection>>, + websocket_info: Option<WebsocketInfo>, + ) -> Result<Self::Response, Error>; } |