use super::Kalshi;
use crate::kalshi_error::*;
use crate::portfolio::Order;
use serde::Deserialize;
impl Kalshi {
pub async fn get_fcm_orders(&self) -> Result<Vec<Order>, KalshiError> {
let path = "/fcm/orders";
let res: FcmOrdersResponse = self.signed_get(path).await?;
Ok(res.orders)
}
pub async fn get_fcm_positions(&self) -> Result<Vec<FcmPosition>, KalshiError> {
let path = "/fcm/positions";
let res: FcmPositionsResponse = self.signed_get(path).await?;
Ok(res.positions)
}
}
#[derive(Debug, Deserialize)]
struct FcmOrdersResponse {
orders: Vec<Order>,
}
#[derive(Debug, Deserialize)]
struct FcmPositionsResponse {
positions: Vec<FcmPosition>,
}
use serde::Serialize;
#[derive(Debug, Deserialize, Serialize)]
pub struct FcmPosition {
pub ticker: String,
pub position: i32,
#[serde(flatten)]
pub details: std::collections::HashMap<String, serde_json::Value>,
}