From 80472506ca0d7e5850a798eeb1c8b1d37f04e719 Mon Sep 17 00:00:00 2001 From: Bat Date: Sun, 29 Apr 2018 19:01:42 +0100 Subject: [PATCH] User outbox --- src/main.rs | 1 + src/models/users.rs | 10 ++++++++++ src/routes/user.rs | 7 +++++++ 3 files changed, 18 insertions(+) diff --git a/src/main.rs b/src/main.rs index c31b5e9e..b70d8aee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -59,6 +59,7 @@ fn main() { routes::user::me, routes::user::details, routes::user::activity_details, + routes::user::outbox, routes::user::new, routes::user::create, diff --git a/src/models/users.rs b/src/models/users.rs index 514d6126..f09b30b9 100644 --- a/src/models/users.rs +++ b/src/models/users.rs @@ -3,7 +3,9 @@ use diesel::{self, QueryDsl, RunQueryDsl, ExpressionMethods, PgConnection}; use rocket::request::{self, FromRequest, Request}; use rocket::outcome::IntoOutcome; +use activity_pub::activity::Activity; use activity_pub::actor::{ActorType, Actor}; +use activity_pub::outbox::Outbox; use activity_pub::webfinger::Webfinger; use db_conn::DbConn; use models::instance::Instance; @@ -94,6 +96,14 @@ impl User { .get_result::(conn).expect("Couldn't update outbox URL"); } } + + pub fn outbox(&self, conn: &PgConnection) -> Outbox { + Outbox::new(self.compute_outbox(conn), self.get_activities()) + } + + fn get_activities(&self) -> Vec { + vec![] + } } impl<'a, 'r> FromRequest<'a, 'r> for User { diff --git a/src/routes/user.rs b/src/routes/user.rs index b3b4d987..af2bb7f3 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -5,6 +5,7 @@ use std::collections::HashMap; use activity_pub::ActivityPub; use activity_pub::actor::Actor; +use activity_pub::outbox::Outbox; use db_conn::DbConn; use models::instance::Instance; use models::users::*; @@ -57,3 +58,9 @@ fn create(conn: DbConn, data: Form) -> Redirect { Redirect::to(format!("/@/{}", data.get().username).as_str()) } + +#[get("/@//outbox")] +fn outbox(name: String, conn: DbConn) -> Outbox { + let user = User::find_by_name(&*conn, name).unwrap(); + user.outbox(&*conn) +}