use serde::Deserialize;
#[derive(Debug, Deserialize)]
pub struct ApiGetResponse<T> {
pub data: Vec<T>,
}
#[derive(Debug, Deserialize)]
pub struct ApiGetManyResponse<T> {
pub data: Vec<T>,
pub info: ApiGetManyResponseInfo,
}
#[derive(Debug, Deserialize)]
pub struct ApiGetManyResponseInfo {
pub count: usize,
pub more_records: bool,
pub page: usize,
pub per_page: usize,
}
#[derive(Debug, Deserialize)]
pub struct AuthErrorResponse {
pub error: String,
}
#[derive(Debug, Deserialize)]
pub struct ApiSuccessResponse {
pub data: Vec<ApiSuccessResponseDataItem>,
}
#[derive(Debug, Deserialize)]
pub struct ApiSuccessResponseDataItem {
pub code: String,
pub details: ResponseDataItemDetails,
pub message: String,
pub status: String,
}
#[derive(Debug, Deserialize)]
#[serde(untagged)]
pub enum ResponseDataItemDetails {
Success(ResponseDataItemDetailsSuccess),
Error(ResponseDataItemDetailsError),
}
#[derive(Debug, Deserialize)]
pub struct ResponseDataItemDetailsError {
pub api_name: Option<String>,
pub expected_data_type: Option<String>,
pub index: Option<String>,
}
#[derive(Debug, Deserialize)]
pub struct ResponseDataItemDetailsSuccess {
#[serde(alias = "Modified_Time")]
pub modified_time: String,
#[serde(alias = "Created_Time")]
pub created_time: String,
pub id: String,
}
#[derive(Debug, Deserialize)]
pub struct ApiErrorResponse {
#[allow(dead_code)]
pub code: String,
#[allow(dead_code)]
pub message: String,
#[allow(dead_code)]
pub status: String,
}
impl ApiErrorResponse {
#[allow(dead_code)]
pub fn to_string(&self) -> String {
format!("[{}] {}", self.code, self.message)
}
}