lemmy_api/post/
get_link_metadata.rs1use 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}