diff options
author | Ferris Tseng <ferristseng@fastmail.fm> | 2017-10-10 21:10:47 -0400 |
---|---|---|
committer | Ferris Tseng <ferristseng@fastmail.fm> | 2017-10-10 21:10:47 -0400 |
commit | 434aee7ea0fcdafdeb0341a011990121d69fa646 (patch) | |
tree | f63003cfd1af2bdacd06df363714ece0cf63893b | |
parent | 013bba6ce41d2ebdd64e7bc25f6a221a85d1ec0d (diff) |
add pin request
-rw-r--r-- | ipfs-api/src/client.rs | 6 | ||||
-rw-r--r-- | ipfs-api/src/request/mod.rs | 2 | ||||
-rw-r--r-- | ipfs-api/src/request/pin.rs | 18 | ||||
-rw-r--r-- | ipfs-api/src/response/pin.rs | 8 |
4 files changed, 30 insertions, 4 deletions
diff --git a/ipfs-api/src/client.rs b/ipfs-api/src/client.rs index b44e544..203a434 100644 --- a/ipfs-api/src/client.rs +++ b/ipfs-api/src/client.rs @@ -198,6 +198,12 @@ impl IpfsClient { self.request(&request::ObjectStat { key }) } + /// Returns a list of pinned objects in local storage. + /// + pub fn pin_ls(&self, key: Option<&str>, typ: Option<&str>) -> ApiResult<response::PinLsResponse> { + self.request(&request::PinLs { key, typ }) + } + /// Returns bitswap stats. /// pub fn stats_bitswap(&self) -> ApiResult<response::StatsBitswapResponse> { diff --git a/ipfs-api/src/request/mod.rs b/ipfs-api/src/request/mod.rs index 5befbaa..a245eb3 100644 --- a/ipfs-api/src/request/mod.rs +++ b/ipfs-api/src/request/mod.rs @@ -4,6 +4,7 @@ pub use self::commands::*; pub use self::config::*; pub use self::ls::*; pub use self::object::*; +pub use self::pin::*; pub use self::stats::*; pub use self::swarm::*; pub use self::version::*; @@ -49,6 +50,7 @@ mod commands; mod config; mod ls; mod object; +mod pin; mod stats; mod swarm; mod version; diff --git a/ipfs-api/src/request/pin.rs b/ipfs-api/src/request/pin.rs new file mode 100644 index 0000000..c206f13 --- /dev/null +++ b/ipfs-api/src/request/pin.rs @@ -0,0 +1,18 @@ +use request::ApiRequest; + + +#[derive(Serialize)] +pub struct PinLs<'a> { + #[serde(rename = "arg")] + pub key: Option<&'a str>, + + #[serde(rename = "type")] + pub typ: Option<&'a str> +} + +impl<'a> ApiRequest for PinLs<'a> { + #[inline] + fn path() -> &'static str { + "/pin/ls" + } +} diff --git a/ipfs-api/src/response/pin.rs b/ipfs-api/src/response/pin.rs index 2dbee20..a6ed0a2 100644 --- a/ipfs-api/src/response/pin.rs +++ b/ipfs-api/src/response/pin.rs @@ -2,7 +2,7 @@ use response::serde; use std::collections::HashMap; -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct PinAddResponse { #[serde(deserialize_with = "serde::deserialize_vec")] @@ -12,7 +12,7 @@ pub struct PinAddResponse { } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct PinType { #[serde(rename = "Type")] @@ -20,7 +20,7 @@ pub struct PinType { } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct PinLsResponse { #[serde(deserialize_with = "serde::deserialize_hashmap")] @@ -28,7 +28,7 @@ pub struct PinLsResponse { } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct PinRmResponse { #[serde(deserialize_with = "serde::deserialize_vec")] |