rsgmo 0.2.2

GMOコインのRust用APIライブラリ.
Documentation
use rsgmo::{
    v1::{api::GmoApi, ws::GmoWs},
    request::AccessLevel,
};
use std::env;
use chrono::{Local, Datelike};
use tokio::time::{sleep, Duration};
use anyhow::Result;

pub fn setup_api_private() -> GmoApi {
    let api_key = env::var("API_KEY").expect("API_KEY must be set");
    let api_secret = env::var("API_SECRET").expect("API_SECRET must be set");

    GmoApi::new(Some(api_key), Some(api_secret))
}

pub fn setup_api_public() -> GmoApi {
    GmoApi::new(None, None)
}

pub async fn setup_ws_public() -> GmoWs {
    let ws = GmoWs::new(AccessLevel::Public, None).await.unwrap();
    ws
}

pub async fn setup_ws_private() -> Result<GmoWs> {
    let api = setup_api_private();
    let access_token = api.post_ws_auth().await?;
    let ws = GmoWs::new(AccessLevel::Private, Some(access_token.data().to_string())).await?;
    Ok(ws)
}

pub fn get_today() -> String {
    let now = Local::now();
    let formatted_date = format!("{:04}{:02}{:02}", now.year(), now.month(), now.day());
    formatted_date
}

pub async fn delay_for_a_while() {
    sleep(Duration::from_millis(400)).await;
}

pub async fn delay_for_a_while_long() {
    sleep(Duration::from_millis(1500)).await;
}