Skip to main content

farcaster_rs/reactions/
delete_like.rs

1use crate::constants::merkle::API_ROOT;
2use crate::types::reactions::deleted_like::DeletedLikeRoot;
3use crate::Farcaster;
4use serde_json::{json, Value};
5use std::error::Error;
6
7impl Farcaster {
8    /// Unlike a cast
9    ///
10    /// # Params
11    /// cast_hash: &str
12    ///
13    /// # Example
14    /// ```no_run
15    /// farcaster.delete_like_by_cast_hash("cast hash").await?;
16    /// ```
17    pub async fn delete_like_by_cast_hash(
18        &self,
19        cast_hash: &str,
20    ) -> Result<DeletedLikeRoot, Box<dyn Error>> {
21        let payload: Value = json!({ "castHash": cast_hash });
22
23        let deleted_like_reqwest = reqwest::Client::new()
24            .delete(format!("{}/v2/cast-likes", API_ROOT))
25            .header("Content-Type", "application/json")
26            .header(
27                "Authorization",
28                &self.account.session_token.as_ref().unwrap().secret,
29            )
30            .json(&payload)
31            .send()
32            .await?
33            .text()
34            .await?;
35
36        println!("{}", deleted_like_reqwest);
37
38        let deleted_like: DeletedLikeRoot = serde_json::from_str(&deleted_like_reqwest)?;
39
40        Ok(deleted_like)
41    }
42}