]> Untitled Git - lemmy.git/blob - crates/api/src/post/get_link_metadata.rs
Merge pull request #2593 from LemmyNet/refactor-notifications
[lemmy.git] / crates / api / src / post / get_link_metadata.rs
1 use crate::Perform;
2 use actix_web::web::Data;
3 use lemmy_api_common::{
4   context::LemmyContext,
5   post::{GetSiteMetadata, GetSiteMetadataResponse},
6   request::fetch_site_metadata,
7 };
8 use lemmy_utils::{error::LemmyError, ConnectionId};
9
10 #[async_trait::async_trait(?Send)]
11 impl Perform for GetSiteMetadata {
12   type Response = GetSiteMetadataResponse;
13
14   #[tracing::instrument(skip(context, _websocket_id))]
15   async fn perform(
16     &self,
17     context: &Data<LemmyContext>,
18     _websocket_id: Option<ConnectionId>,
19   ) -> Result<GetSiteMetadataResponse, LemmyError> {
20     let data: &Self = self;
21
22     let metadata = fetch_site_metadata(context.client(), &data.url).await?;
23
24     Ok(GetSiteMetadataResponse { metadata })
25   }
26 }