//! Fetch another user's profile //! //! Will fail if the authenticated user does not //! have permission to access the other user's profile. use revolt_quark::{ models::{user::UserProfile, User}, perms, Database, Error, Ref, Result, }; use rocket::{serde::json::Json, State}; #[get("//profile")] pub async fn req(db: &State, user: User, target: Ref) -> Result> { let target = target.as_user(db).await?; if perms(&user) .user(&target) .calc_user(db) .await .get_view_profile() { Ok(Json(target.profile.unwrap_or_default())) } else { Err(Error::NotFound) } }