rsgmo 0.2.2

GMOコインのRust用APIライブラリ.
Documentation
use crate::{
    v1::api::GmoApi,
    request::AccessLevel,
};

use anyhow::Result;
use serde::{Deserialize, Serialize};

const PATH: &str = "/v1/cancelOrders";

impl GmoApi {
    pub async fn post_cancel_orders(&self, parameters: PostCancelOrdersParameters) -> Result<PostCancelOrdersResponse> {
        self.post(PATH, Some(parameters), AccessLevel::Private).await
    }
}


#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PostCancelOrdersParameters {
    order_ids: String,
}

impl PostCancelOrdersParameters {
    pub fn new(
        order_ids: &str,
    ) -> Self {
        Self {
            order_ids: order_ids.to_string(),
        }
    }
}
#[derive(Debug, Clone, Deserialize)]
pub struct PostCancelOrdersResponse {
    status: i32,
    data: CancelOrdersData,
    responsetime: String,
}

impl PostCancelOrdersResponse {
    pub fn status(&self) -> i32 {
        self.status
    }
    pub fn data(&self) -> &CancelOrdersData {
        &self.data
    }
    pub fn responsetime(&self) -> &str {
        &self.responsetime
    }
}

#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelOrdersData {
    success: Vec<i64>,
    failed: Vec<FailOrderDetail>,
}

impl CancelOrdersData {
    pub fn success(&self) -> &Vec<i64> {
        &self.success
    }
    pub fn failed(&self) -> &Vec<FailOrderDetail> {
        &self.failed
    }
}

#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FailOrderDetail {
    message_code: String,
    message_string: String,
    order_id: i64,
}

impl FailOrderDetail {
    pub fn message_code(&self) -> &str {
        &self.message_code
    }
    pub fn message_string(&self) -> &str {
        &self.message_string
    }
    pub fn order_id(&self) -> i64 {
        self.order_id
    }
}