use std::sync::Arc;
use crate::client::HttpCore;
use crate::error::Result;
use crate::types::*;
#[derive(Debug, Clone)]
pub struct CopyTrade {
pub(crate) core: Arc<HttpCore>,
}
impl CopyTrade {
pub async fn list(&self) -> Result<CopyTradeListResponse> {
self.core.get("/rhc/copytrade/subscriptions", &()).await
}
pub async fn create(
&self,
params: &CopyTradeCreateParams,
) -> Result<CopyTradeCreateResponse> {
self.core.post("/rhc/copytrade/subscriptions", params).await
}
pub async fn get(&self, id: i64) -> Result<CopyTradeGetResponse> {
self.core
.get(&format!("/rhc/copytrade/subscriptions/{}", id), &())
.await
}
pub async fn update(
&self,
id: i64,
params: &CopyTradeUpdateParams,
) -> Result<CopyTradeGetResponse> {
self.core
.patch(&format!("/rhc/copytrade/subscriptions/{}", id), params)
.await
}
pub async fn delete(&self, id: i64) -> Result<RhcDeletedResponse> {
self.core
.delete(&format!("/rhc/copytrade/subscriptions/{}", id))
.await
}
pub async fn signals(
&self,
params: &CopyTradeSignalsParams,
) -> Result<CopyTradeSignalsResponse> {
self.core.get("/rhc/copytrade/signals", params).await
}
}