lemmy_api/post/
get_link_metadata.rs

1use crate::Perform;
2use actix_web::web::Data;
3use lemmy_api_common::{
4  context::LemmyContext,
5  post::{GetSiteMetadata, GetSiteMetadataResponse},
6  request::fetch_site_metadata,
7};
8use lemmy_utils::error::LemmyError;
9
10#[async_trait::async_trait(?Send)]
11impl Perform for GetSiteMetadata {
12  type Response = GetSiteMetadataResponse;
13
14  #[tracing::instrument(skip(context))]
15  async fn perform(
16    &self,
17    context: &Data<LemmyContext>,
18  ) -> Result<GetSiteMetadataResponse, LemmyError> {
19    let data: &Self = self;
20
21    let metadata = fetch_site_metadata(context.client(), &data.url).await?;
22
23    Ok(GetSiteMetadataResponse { metadata })
24  }
25}