use crate::error::GraphqlErrorEntry;
#[derive(Debug, Clone)]
#[non_exhaustive]
pub struct Response<T> {
pub data: Option<T>,
pub errors: Vec<GraphqlErrorEntry>,
pub status: reqwest::StatusCode,
}
impl<T> Response<T> {
pub fn is_partial(&self) -> bool {
self.data.is_some() && !self.errors.is_empty()
}
pub fn messages(&self) -> String {
self.errors
.iter()
.map(|e| e.message.as_str())
.collect::<Vec<_>>()
.join("; ")
}
pub fn codes(&self) -> Vec<&str> {
self.errors
.iter()
.filter_map(|e| e.code.as_deref())
.collect()
}
}