[−][src]Struct rust_asana::schema::response::Response
Represents a response from Asana
This is a JSON object that could have 2 (or more idk) keys: "data" or "errors". You can deserialize a payload from the Asana API into one of these.
You can use value()
or values()
to get the data returned by Asana, serialized into one
of the structs in the schema
module. You can use errors()
to return a
vector of schema::Error
s.
Fields
data: Value
errors: Vec<Error>
Implementations
impl Response
[src]
pub fn into<T: DeserializeOwned>(self) -> Result<T, Vec<Error>>
[src]
Consumes the response, returning Ok()
with the type provided or
Err()
with a vector of schema::Error
s.
pub fn value<T: DeserializeOwned>(&self) -> Option<T>
[src]
Returns the single value of type T. If Asana returns an array of objects,
this will return None. See values()
.
use rust_asana::Response; use rust_asana::schema::UserCompact; // This is UserCompact object, defined by Asana let payload = r#"{ "data": { "gid": "12345", "resource_type": "user", "name": "Greg Sanchez" } }"#; let resp = serde_json::from_str::<Response>(&payload).unwrap(); let user = resp.value::<UserCompact>(); assert!(user.is_some()); assert_eq!(user.unwrap().name, "Greg Sanchez");
pub fn errors(&self) -> Option<Vec<Error>>
[src]
Same as values()
, but returns the Asana errors (always a vector).
pub fn values<T: DeserializeOwned>(&self) -> Option<Vec<T>>
[src]
This is the same as value()
, but it returns a vector of values. Some requests
from Asana return an array of values, which this is meant for.
Important Note: This methid will work on a payload of only one object. It
will convert it to a vector of one item. As long as there is serializable data in the
data
field of the payload, this will return the object(s).
If the response is an empty array, this will return Some([]), not None
use rust_asana::Response; use rust_asana::schema::UserCompact; // This is UserCompact object, defined by Asana let payload = r#"{ "data": [ { "gid": "12345", "resource_type": "user", "name": "Greg Sanchez" }, { "gid": "54321", "resource_type": "user", "name": "Luke Lastname" } ] }"#; let resp = serde_json::from_str::<Response>(&payload).unwrap(); let user = resp.values::<UserCompact>(); assert!(user.is_some()); assert_eq!(user.unwrap()[0].name, "Greg Sanchez");
Trait Implementations
impl<'de> Deserialize<'de> for Response
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
impl RefUnwindSafe for Response
impl Send for Response
impl Sync for Response
impl Unpin for Response
impl UnwindSafe for Response
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,