use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
pub struct RequestError {
pub status: u16,
pub reason: String,
pub message: Option<String>,
pub error: Option<SmartsheetError>,
}
impl RequestError {
pub fn new(status: u16, reason: String) -> Self {
Self {
status,
reason,
message: None,
error: None,
}
}
}
#[derive(Debug, Deserialize, Serialize)]
pub struct SmartsheetError {
pub message: String,
#[serde(rename = "errorCode")]
pub error_code: u16,
#[serde(rename = "refId")]
pub ref_id: Option<String>,
}
impl std::fmt::Display for RequestError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
impl std::error::Error for RequestError {}