Skip to main content

hinge_rs/client/
likes.rs

1use super::HingeClient;
2use crate::errors::HingeError;
3use crate::models::{LikeItemV2, LikeLimit, LikesV2Response, MatchNoteResponse};
4use crate::storage::Storage;
5
6impl<S: Storage + Clone> HingeClient<S> {
7    pub async fn get_like_limit(&self) -> Result<LikeLimit, HingeError> {
8        let url = format!("{}/likelimit", self.settings.base_url);
9        let res = self.http_get(&url).await?;
10        self.parse_response(res).await
11    }
12
13    pub async fn get_likes_v2(&self) -> Result<LikesV2Response, HingeError> {
14        let url = format!("{}/like/v2", self.settings.base_url);
15        let res = self.http_get(&url).await?;
16        self.parse_response(res).await
17    }
18
19    pub async fn get_like_subject(&self, subject_id: &str) -> Result<LikeItemV2, HingeError> {
20        let url = format!("{}/like/subject/{}", self.settings.base_url, subject_id);
21        let res = self.http_get(&url).await?;
22        self.parse_response(res).await
23    }
24
25    pub async fn get_match_note(&self, subject_id: &str) -> Result<MatchNoteResponse, HingeError> {
26        let url = format!(
27            "{}/connection/v2/matchnote/{}",
28            self.settings.base_url, subject_id
29        );
30        let res = self.http_get(&url).await?;
31        self.parse_response(res).await
32    }
33
34    pub async fn get_likes_v2_raw(&self) -> Result<serde_json::Value, HingeError> {
35        let url = format!("{}/like/v2", self.settings.base_url);
36        let res = self.http_get(&url).await?;
37        self.parse_response(res).await
38    }
39}