Undisclosed project number 1234
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 924 B View raw
1use bytes::Bytes; 2use jacquard_common::DefaultStr; 3use jacquard_common::session::SessionStore; 4use jacquard_common::types::blob::Blob; 5use serde::Deserialize; 6use superjam_core::{Did, Nsid}; 7use superjam_oauth::Session; 8 9use crate::client::Pds; 10use crate::error::Result; 11use crate::newtype::MimeType; 12 13pub use jacquard_common::types::blob::BlobRef; 14 15pub type UploadedBlob = Blob<DefaultStr>; 16 17impl<S> Pds<S> 18where 19 S: SessionStore<Did, Session> + Clone + Send + Sync + 'static, 20{ 21 pub async fn upload_blob(&mut self, bytes: Bytes, mime: &MimeType) -> Result<UploadedBlob> { 22 let nsid = 23 Nsid::new_static("com.atproto.repo.uploadBlob").expect("static NSID well-formed"); 24 let url = self.xrpc_url(&nsid)?; 25 let resp: UploadBlobResponse = self.post_bytes(url, bytes, mime).await?; 26 Ok(resp.blob) 27 } 28} 29 30#[derive(Deserialize)] 31struct UploadBlobResponse { 32 blob: UploadedBlob, 33}