summer_ipfs_client/
ipns.rs

1use crate::IpfsApi;
2
3use serde_json::Value;
4
5use reqwest;
6use serde_json;
7use failure::err_msg;
8use failure::Error;
9
10impl IpfsApi {
11    pub fn name_resolve(&self, name: &str) -> Result<String, Error> {
12        let url = format!("http://{}:{}/api/v0/name/resolve?arg={}", self.server, self.port, name);
13        let resp = reqwest::get(&url)?;
14        let resp: Value = serde_json::from_reader(resp)?;
15        
16        if resp["Path"].is_string() {
17            Ok(resp["Path"].as_str().unwrap().into())
18        } else {
19            Err(err_msg("Key error"))
20        }
21    }
22
23    pub fn name_publish(&self, hash: &str) -> Result<(), Error> {
24        let url = format!("http://{}:{}/api/v0/name/publish?arg={}", self.server, self.port, hash);
25        let _resp = reqwest::get(&url)?;
26        Ok(())
27    }
28}