Skip to content

Instantly share code, notes, and snippets.

@Zvax

Zvax/cargo.toml Secret

Created September 20, 2021 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Zvax/adec3979d604ac1f84d5dbccd6f69135 to your computer and use it in GitHub Desktop.
Save Zvax/adec3979d604ac1f84d5dbccd6f69135 to your computer and use it in GitHub Desktop.
[package]
name = "hockey"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = { version = "1.0.130", features = ["derive"] }
serde_json = "1.0.68"
use std::process::Command;
use std::env;
use serde::Deserialize;
const DOUCHYPOOL_SPREADSHEET_ID: &str = "very-id";
const POOLING_SPREADSHEET_ID: &str = "very-other-id";
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct GridProperties {
row_count: u32,
column_count: u32
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct SheetProperties {
sheet_id: u32,
title: String,
index: u32,
sheet_type: String,
grid_properties: GridProperties,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Sheet {
properties: SheetProperties,
}
fn basic_api_call_command() -> Command {
let mut cmd = Command::new("oauth2l");
cmd.args([
"curl",
"--curlcli", "curl",
"--scope", "sheets",
"--credentials", "./RoboticDG-ActuallyOwner.json",
]);
cmd
}
fn main() {
let api_key = env::var("SHEETS_API_KEY").unwrap();
let douchypool_spreadsheet_get_url = format!(
"https://sheets.googleapis.com/v4/spreadsheets/{}?key={}",
DOUCHYPOOL_SPREADSHEET_ID,
api_key
);
let pooling_spreadsheet_get_url = format!(
"https://sheets.googleapis.com/v4/spreadsheets/{}?key={}",
POOLING_SPREADSHEET_ID,
api_key
);
let douchypool_tabs = basic_api_call_command()
.args(["--url", douchypool_spreadsheet_get_url.as_str()])
.output().unwrap();
let string = std::str::from_utf8(douchypool_tabs.stderr.as_slice()).unwrap();
let douchypool_metadata: serde_json::Value = serde_json::from_str(string).unwrap();
let title = &douchypool_metadata["properties"]["title"];
println!("Title : {}", title);
let sheets = douchypool_metadata["sheets"].as_array().unwrap();
for sheet in sheets {
let sheet: Sheet = serde_json::from_value(sheet.clone()).unwrap();
println!("{:?}", sheet);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment