2 use actix_web::web::Data;
3 use lemmy_api_common::{
5 site::{GetFederatedInstances, GetFederatedInstancesResponse},
6 utils::build_federated_instances,
8 use lemmy_db_views::structs::SiteView;
9 use lemmy_utils::error::LemmyError;
11 #[async_trait::async_trait(?Send)]
12 impl Perform for GetFederatedInstances {
13 type Response = GetFederatedInstancesResponse;
15 #[tracing::instrument(skip(context))]
16 async fn perform(&self, context: &Data<LemmyContext>) -> Result<Self::Response, LemmyError> {
17 let site_view = SiteView::read_local(context.pool()).await?;
18 let federated_instances =
19 build_federated_instances(&site_view.local_site, context.pool()).await?;