summaryrefslogtreecommitdiffstats
path: root/server/src/api/mod.rs
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-04-21 10:25:29 -0400
committerDessalines <tyhou13@gmx.com>2020-04-21 10:25:29 -0400
commitf0026065f5f809d2038ca91d7880becb39b0f9a7 (patch)
treefdb76bb60d89bc56f1e60deaa2a5d62fb5a9edc8 /server/src/api/mod.rs
parent2f4b3a4f833ce277ab989626a6210167ce47c29e (diff)
parentb98fa1274151f61b13679aa30f332686bc9645f3 (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.rs35
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>;
}