use std::sync::Arc;
use crate::client::HttpCore;
use crate::error::Result;
use crate::types::*;
#[derive(Debug, Clone)]
pub struct Kol {
pub(crate) core: Arc<HttpCore>,
}
impl Kol {
pub async fn feed(&self, params: &KolFeedParams) -> Result<KolFeedResponse> {
self.core.get("/rhc/kol/feed", params).await
}
pub async fn leaderboard(
&self,
params: &KolLeaderboardParams,
) -> Result<KolLeaderboardResponse> {
self.core.get("/rhc/kol/leaderboard", params).await
}
pub async fn hot_tokens(&self, params: &HotTokensParams) -> Result<HotTokensResponse> {
self.core.get("/rhc/kol/hot-tokens", params).await
}
pub async fn coordination(&self, params: &CoordinationParams) -> Result<CoordinationResponse> {
self.core.get("/rhc/kol/coordination", params).await
}
pub async fn first_touches(
&self,
params: &FirstTouchesParams,
) -> Result<FirstTouchesResponse> {
self.core.get("/rhc/kol/first-touches", params).await
}
pub async fn wallet(&self, wallet: &str) -> Result<KolProfileResponse> {
self.core.get(&format!("/rhc/kol/{}", wallet), &()).await
}
pub async fn coordination_alerts_list(&self) -> Result<CoordinationAlertListResponse> {
self.core.get("/rhc/kol/coordination/alerts", &()).await
}
pub async fn coordination_alerts_create(
&self,
params: &CoordinationAlertCreateParams,
) -> Result<CoordinationAlertCreateResponse> {
self.core.post("/rhc/kol/coordination/alerts", params).await
}
pub async fn coordination_alerts_get(
&self,
id: &str,
) -> Result<CoordinationAlertGetResponse> {
self.core
.get(&format!("/rhc/kol/coordination/alerts/{}", id), &())
.await
}
pub async fn coordination_alerts_update(
&self,
id: &str,
params: &CoordinationAlertUpdateParams,
) -> Result<CoordinationAlertGetResponse> {
self.core
.patch(&format!("/rhc/kol/coordination/alerts/{}", id), params)
.await
}
pub async fn coordination_alerts_delete(&self, id: &str) -> Result<RhcDeletedResponse> {
self.core
.delete(&format!("/rhc/kol/coordination/alerts/{}", id))
.await
}
pub async fn first_touch_subscriptions_list(
&self,
) -> Result<FirstTouchSubscriptionListResponse> {
self.core
.get("/rhc/kol/first-touches/subscriptions", &())
.await
}
pub async fn first_touch_subscriptions_create(
&self,
params: &FirstTouchSubscriptionCreateParams,
) -> Result<FirstTouchSubscriptionCreateResponse> {
self.core
.post("/rhc/kol/first-touches/subscriptions", params)
.await
}
pub async fn first_touch_subscriptions_get(
&self,
id: &str,
) -> Result<FirstTouchSubscriptionGetResponse> {
self.core
.get(&format!("/rhc/kol/first-touches/subscriptions/{}", id), &())
.await
}
pub async fn first_touch_subscriptions_update(
&self,
id: &str,
params: &FirstTouchSubscriptionUpdateParams,
) -> Result<FirstTouchSubscriptionGetResponse> {
self.core
.patch(
&format!("/rhc/kol/first-touches/subscriptions/{}", id),
params,
)
.await
}
pub async fn first_touch_subscriptions_delete(
&self,
id: &str,
) -> Result<RhcDeletedResponse> {
self.core
.delete(&format!("/rhc/kol/first-touches/subscriptions/{}", id))
.await
}
}