diff --git a/crates/presentation/src/handlers/federation_management.rs b/crates/presentation/src/handlers/federation_management.rs index 315dc24..dbcf0f7 100644 --- a/crates/presentation/src/handlers/federation_management.rs +++ b/crates/presentation/src/handlers/federation_management.rs @@ -5,8 +5,8 @@ use crate::{ }; use api_types::responses::{ProfileField, RemoteActorResponse}; use application::use_cases::federation_management::{ - accept_follow_request, initiate_actor_move, list_pending_requests, list_remote_followers, - list_remote_following, reject_follow_request, remove_remote_following, + accept_follow_request, get_remote_friends, initiate_actor_move, list_pending_requests, + list_remote_followers, list_remote_following, reject_follow_request, remove_remote_following, }; use axum::{http::StatusCode, Json}; use domain::ports::{EventPublisher, FederationActionPort, FollowRepository, UserRepository}; @@ -96,6 +96,14 @@ pub async fn get_remote_following( Ok(Json(actors.into_iter().map(to_response).collect())) } +pub async fn get_remote_friends_handler( + Deps(d): Deps, + AuthUser(uid): AuthUser, +) -> Result>, ApiError> { + let actors = get_remote_friends(&*d.federation, &uid).await?; + Ok(Json(actors.into_iter().map(to_response).collect())) +} + pub async fn delete_following( Deps(d): Deps, AuthUser(uid): AuthUser, diff --git a/crates/presentation/src/routes.rs b/crates/presentation/src/routes.rs index 7ae5721..b0e0289 100644 --- a/crates/presentation/src/routes.rs +++ b/crates/presentation/src/routes.rs @@ -105,6 +105,10 @@ pub fn router() -> Router { get(federation_management::get_remote_following) .delete(federation_management::delete_following), ) + .route( + "/federation/me/friends", + get(federation_management::get_remote_friends_handler), + ) .route( "/federation/me/move", post(federation_management::post_move_account),