use jacquard::deps::fluent_uri::Uri; use jacquard::types::string::RecordKey; use jacquard::xrpc::XrpcExt; use jacquard_api::com_atproto::repo::get_record::GetRecord; use jacquard_api::com_atproto::repo::get_record::GetRecordOutput; use std::str::FromStr; pub async fn get_post_from_pds( did: String, pds_endpoint: String, rkey: String, ) -> anyhow::Result> { let rkey = RecordKey::from_str(&rkey).map_err(|err| { println!("parsing rkey: {err}"); err })?; let req = GetRecord::new() .repo(did.clone()) .collection("app.bsky.feed.post".to_string()) .rkey(rkey) .build(); let http = reqwest::Client::new(); let base = Uri::parse(pds_endpoint) .to_owned() .map_err(|_| anyhow::Error::msg("parsing pds endpoint {pds_endpoint}"))?; let response = http.xrpc(base.to_owned()).send(&req).await?; let record = response.into_output()?; Ok(record) }