summaryrefslogtreecommitdiffstats
path: root/server/src/apub/user_inbox.rs
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-04-27 12:57:00 -0400
committerDessalines <tyhou13@gmx.com>2020-04-27 12:57:00 -0400
commit22abbebd41d586298c62bb6a45efa7a96d998049 (patch)
tree60c31f49e9cee360cd06edc18eb53f93e953d6b7 /server/src/apub/user_inbox.rs
parent3ce061836242813730ec0b63240097347647dfc4 (diff)
Lots of additions to federation.
- Added a shared inbox. - Added federated comments, comment updates, and tests. - Abstracted ap object sends into a common trait.
Diffstat (limited to 'server/src/apub/user_inbox.rs')
-rw-r--r--server/src/apub/user_inbox.rs65
1 files changed, 0 insertions, 65 deletions
diff --git a/server/src/apub/user_inbox.rs b/server/src/apub/user_inbox.rs
index 251a221c..7c00b5bb 100644
--- a/server/src/apub/user_inbox.rs
+++ b/server/src/apub/user_inbox.rs
@@ -3,8 +3,6 @@ use super::*;
#[serde(untagged)]
#[derive(Deserialize, Debug)]
pub enum UserAcceptedObjects {
- Create(Create),
- Update(Update),
Accept(Accept),
}
@@ -23,73 +21,10 @@ pub async fn user_inbox(
debug!("User {} received activity: {:?}", &username, &input);
match input {
- UserAcceptedObjects::Create(c) => handle_create(&c, &request, &username, &conn),
- UserAcceptedObjects::Update(u) => handle_update(&u, &request, &username, &conn),
UserAcceptedObjects::Accept(a) => handle_accept(&a, &request, &username, &conn),
}
}
-/// Handle create activities and insert them in the database.
-fn handle_create(
- create: &Create,
- request: &HttpRequest,
- _username: &str,
- conn: &PgConnection,
-) -> Result<HttpResponse, Error> {
- // TODO before this even gets named, because we don't know what type of object it is, we need
- // to parse this out
- let user_uri = create
- .create_props
- .get_actor_xsd_any_uri()
- .unwrap()
- .to_string();
-
- let user = get_or_fetch_and_upsert_remote_user(&user_uri, &conn)?;
- verify(request, &user.public_key.unwrap())?;
-
- let page = create
- .create_props
- .get_object_base_box()
- .to_owned()
- .unwrap()
- .to_owned()
- .to_concrete::<Page>()?;
- let post = PostForm::from_apub(&page, conn)?;
- Post::create(conn, &post)?;
- // TODO: send the new post out via websocket
- Ok(HttpResponse::Ok().finish())
-}
-
-/// Handle update activities and insert them in the database.
-fn handle_update(
- update: &Update,
- request: &HttpRequest,
- _username: &str,
- conn: &PgConnection,
-) -> Result<HttpResponse, Error> {
- let user_uri = update
- .update_props
- .get_actor_xsd_any_uri()
- .unwrap()
- .to_string();
-
- let user = get_or_fetch_and_upsert_remote_user(&user_uri, &conn)?;
- verify(request, &user.public_key.unwrap())?;
-
- let page = update
- .update_props
- .get_object_base_box()
- .to_owned()
- .unwrap()
- .to_owned()
- .to_concrete::<Page>()?;
- let post = PostForm::from_apub(&page, conn)?;
- let id = Post::read_from_apub_id(conn, &post.ap_id)?.id;
- Post::update(conn, id, &post)?;
- // TODO: send the new post out via websocket
- Ok(HttpResponse::Ok().finish())
-}
-
/// Handle accepted follows.
fn handle_accept(
accept: &Accept,