1use crate::client::HingeClient;
2use crate::errors::HingeError;
3use crate::models::{LikeResponse, RateInput, RateRespondRequest, RateRespondResponse, SkipInput};
4use crate::storage::Storage;
5
6pub struct RatingsApi<'a, S: Storage + Clone> {
7 pub(super) client: &'a mut HingeClient<S>,
8}
9
10impl<S: Storage + Clone> RatingsApi<'_, S> {
11 pub async fn skip(&mut self, input: SkipInput) -> Result<serde_json::Value, HingeError> {
12 self.client.skip(input).await
13 }
14
15 pub async fn rate_user(&mut self, input: RateInput) -> Result<LikeResponse, HingeError> {
16 self.client.rate_user(input).await
17 }
18
19 pub async fn respond(
20 &self,
21 input: RateRespondRequest,
22 ) -> Result<RateRespondResponse, HingeError> {
23 self.client.respond_rate(input).await
24 }
25}