From d5c5d341e8441b8969089db5f108ebedc8890687 Mon Sep 17 00:00:00 2001 From: alemi Date: Thu, 11 Apr 2024 16:59:47 +0200 Subject: [PATCH] fix: ownerships --- src/routes/mastodon/accounts.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/routes/mastodon/accounts.rs b/src/routes/mastodon/accounts.rs index 9fcda30..bc5ecde 100644 --- a/src/routes/mastodon/accounts.rs +++ b/src/routes/mastodon/accounts.rs @@ -2,10 +2,11 @@ use axum::{extract::{Path, State}, http::StatusCode, Json}; use mastodon_async_entities::account::{Account, AccountId}; use sea_orm::EntityTrait; -use crate::{model, server::Context}; +use crate::{model, server::{auth::AuthIdentity, Context}}; pub async fn view( State(ctx): State, + AuthIdentity(_auth): AuthIdentity, Path(id): Path ) -> Result, StatusCode> { match model::user::Entity::find_by_id(ctx.uid(id)) @@ -13,29 +14,29 @@ pub async fn view( .one(ctx.db()) .await { - Err(e) => Err(StatusCode::INTERNAL_SERVER_ERROR), + Err(_e) => Err(StatusCode::INTERNAL_SERVER_ERROR), Ok(None) => Err(StatusCode::NOT_FOUND), - Ok(Some((x, None))) => Err(StatusCode::NOT_IMPLEMENTED), // TODO remote user + Ok(Some((_x, None))) => Err(StatusCode::NOT_IMPLEMENTED), // TODO remote user Ok(Some((x, Some(cfg)))) => Ok(Json(Account { - acct: x.preferred_username, - avatar: x.icon.unwrap_or_default(), + acct: x.preferred_username.clone(), + avatar: x.icon.as_deref().unwrap_or("").to_string(), avatar_static: x.icon.unwrap_or_default(), - created_at: time::OffsetDateTime::from_unix_timestamp(x.created.timestamp()), + created_at: time::OffsetDateTime::from_unix_timestamp(x.created.timestamp()).unwrap(), display_name: x.name.unwrap_or_default(), // TODO hide these maybe followers_count: x.followers_count as u64, following_count: x.following_count as u64, - header: x.image.unwrap_or_default(), + header: x.image.as_deref().unwrap_or("").to_string(), header_static: x.image.unwrap_or_default(), - id: AccountId::new(x.id), + id: AccountId::new(x.id.clone()), locked: !cfg.accept_follow_requests, note: x.summary.unwrap_or_default(), - statuses_count: 0, + statuses_count: 0, // TODO keep track in each user url: x.id, username: x.preferred_username, source: None, moved: None, - fields: None, + fields: None, // TODO user fields bot: None, })), }