average-benchmark 0.1.1

A benchmarking tool for performance cpu analysis
use reqwest::header::HeaderMap;
use serde_json::Value;
use chrono::DateTime;

pub async fn send_data(system_info: Value) -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder().build()?;

    let mut headers = HeaderMap::new();
    headers.insert("Content-Type", "application/json".parse()?);

    let request = client
        .request(reqwest::Method::POST, "http://average-benchmark-api.rustlang-es.org/submit-tests")
        .headers(headers)
        .json(&system_info);

    let response = request.send().await?;
    let body = response.text().await?;
    let parsed: Value = serde_json::from_str(&body)?;

    let success = parsed["success"].as_bool() == Some(true);
    let message_type = if success { "Message" } else { "Error" };
    let color_code = if success { "32" } else { "31" };
    let content = if success {
        parsed["message"].as_str().unwrap_or("Success")
    } else {
        parsed["error"].as_str().unwrap_or("Unknown error")
    };

    let timestamp = parsed["timestamp"]
        .as_str()
        .and_then(|ts_str| DateTime::parse_from_rfc3339(ts_str).ok())
        .map(|ts| ts.format("%Y-%m-%d %H:%M:%S UTC").to_string())
        .unwrap_or_else(|| "N/A".to_string());

    println!("\x1B[{}m{}: {}\x1B[0m", color_code, message_type, content);
    println!("\x1B[{}mTimestamp: {}\x1B[0m", color_code, timestamp);

    Ok(())
}