summaryrefslogtreecommitdiffstats
path: root/server/src/apub/user.rs
diff options
context:
space:
mode:
authorFelix Ableitner <me@nutomic.com>2020-03-16 19:19:04 +0100
committerFelix Ableitner <me@nutomic.com>2020-03-16 19:19:04 +0100
commit5043a52b88e7269b5cb5c774e044c24f1014e917 (patch)
tree679fb89066fbffc63302866ecbc50754c6b87d53 /server/src/apub/user.rs
parent05735b31c09f8644a4652c4dd630abf09590f786 (diff)
Serve post data in apub format, some cleanup
Diffstat (limited to 'server/src/apub/user.rs')
-rw-r--r--server/src/apub/user.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/server/src/apub/user.rs b/server/src/apub/user.rs
index 005ca9de..0bc90b0c 100644
--- a/server/src/apub/user.rs
+++ b/server/src/apub/user.rs
@@ -1,15 +1,15 @@
-use crate::apub::{make_apub_endpoint, create_apub_response};
+use crate::apub::{create_apub_response, make_apub_endpoint, EndpointType};
use crate::convert_datetime;
use crate::db::user::User_;
use activitystreams::{actor::apub::Person, context, object::properties::ObjectProperties};
use actix_web::body::Body;
use actix_web::web::Path;
use actix_web::HttpResponse;
-use failure::Error;
-use serde::Deserialize;
+use actix_web::{web, Result};
use diesel::r2d2::{ConnectionManager, Pool};
use diesel::PgConnection;
-use actix_web::{web, Result};
+use failure::Error;
+use serde::Deserialize;
#[derive(Deserialize)]
pub struct UserQuery {
@@ -18,16 +18,17 @@ pub struct UserQuery {
pub async fn get_apub_user(
info: Path<UserQuery>,
- db: web::Data<Pool<ConnectionManager<PgConnection>>>,) -> Result<HttpResponse<Body>, Error> {
+ db: web::Data<Pool<ConnectionManager<PgConnection>>>,
+) -> Result<HttpResponse<Body>, Error> {
let user = User_::find_by_email_or_username(&&db.get()?, &info.user_name)?;
- let base_url = make_apub_endpoint("u", &user.name);
+ let base_url = make_apub_endpoint(EndpointType::User, &user.name);
let mut person = Person::default();
let oprops: &mut ObjectProperties = person.as_mut();
oprops
- .set_context_xsd_any_uri(context())?
- .set_id(base_url.to_string())?
- .set_published(convert_datetime(user.published))?;
+ .set_context_xsd_any_uri(context())?
+ .set_id(base_url.to_string())?
+ .set_published(convert_datetime(user.published))?;
if let Some(u) = user.updated {
oprops.set_updated(convert_datetime(u))?;
@@ -38,11 +39,11 @@ pub async fn get_apub_user(
}
person
- .ap_actor_props
- .set_inbox(format!("{}/inbox", &base_url))?
- .set_outbox(format!("{}/outbox", &base_url))?
- .set_following(format!("{}/following", &base_url))?
- .set_liked(format!("{}/liked", &base_url))?;
+ .ap_actor_props
+ .set_inbox(format!("{}/inbox", &base_url))?
+ .set_outbox(format!("{}/outbox", &base_url))?
+ .set_following(format!("{}/following", &base_url))?
+ .set_liked(format!("{}/liked", &base_url))?;
Ok(create_apub_response(serde_json::to_string(&person)?))
}