feat(cli): implement tsv format for queries
parent
9817fbf42f
commit
b88d859c98
|
@ -10,6 +10,7 @@ use regex::Captures;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use reqwest::Url;
|
use reqwest::Url;
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
@ -196,16 +197,34 @@ fn main() -> Result<()> {
|
||||||
let client = reqwest::blocking::Client::new();
|
let client = reqwest::blocking::Client::new();
|
||||||
let response = client.post(api_url).body(query).send()?;
|
let response = client.post(api_url).body(query).send()?;
|
||||||
|
|
||||||
match response.error_for_status_ref() {
|
response.error_for_status_ref()?;
|
||||||
Ok(_) => match format {
|
|
||||||
OutputFormat::Json | OutputFormat::Raw => Ok(println!("{}", response.text()?)),
|
match format {
|
||||||
OutputFormat::Tsv => todo!(),
|
OutputFormat::Json | OutputFormat::Raw => println!("{}", response.text()?),
|
||||||
},
|
OutputFormat::Tsv => {
|
||||||
Err(err) => {
|
eprintln!(
|
||||||
error!("{}", response.text()?);
|
"entity\tattribute\tvalue\ttimestamp\tprovenance"
|
||||||
Err(err.into())
|
);
|
||||||
|
response
|
||||||
|
.json::<HashMap<String, serde_json::Value>>()?
|
||||||
|
.iter()
|
||||||
|
.for_each(|(_, entry)| {
|
||||||
|
println!(
|
||||||
|
"{}\t{}\t{}\t{}\t{}",
|
||||||
|
entry.get("entity").and_then(|e| e.as_str()).unwrap(),
|
||||||
|
entry.get("attribute").and_then(|a| a.as_str()).unwrap(),
|
||||||
|
entry
|
||||||
|
.get("value")
|
||||||
|
.and_then(|v| v.get("c"))
|
||||||
|
.unwrap(),
|
||||||
|
entry.get("timestamp").and_then(|t| t.as_str()).unwrap(),
|
||||||
|
entry.get("provenance").and_then(|p| p.as_str()).unwrap(),
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
Commands::Insert {
|
Commands::Insert {
|
||||||
url,
|
url,
|
||||||
|
|
Loading…
Reference in New Issue