/* Example Zot API command line utility, part of zotapi. * Copyright (C) 2018 Harald Eilertsen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ pub fn fetch(client: &zotapi::Client, raw: bool) { match client.abook().fetch() { Ok(payload) => { if raw { println!("{}", &payload); } else { process(&payload); } } Err(e) => { println!("{:?}", e); } } } fn process(payload: &str) { let data: serde_json::Value = serde_json::from_str(&payload).unwrap(); match data { serde_json::Value::Array(v) => { for contact in v { println!( "{} ({}, {})", contact["xchan_name"], contact["xchan_addr"], contact["xchan_network"] ); } } _ => { println!("Unexpected data:\n{}", payload); } }; }