imgurs/src/imgur/album_type.rs

70 lines
1.8 KiB
Rust

use serde::{Deserialize, Serialize};
use crate::ImageInfoData;
/// Album Info Response
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
pub struct AlbumInfo {
/// Image Data
pub data: AlbumInfoData,
/// Request processed success or not.
pub success: bool,
/// HTTP status code from API request.
pub status: i32,
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
pub struct AlbumInfoData {
/// Album ID
pub id: String,
/// Title of the album
pub title: Option<String>,
/// Description of the album
pub description: Option<String>,
pub datetime: i64,
pub cover: String,
pub cover_edited: Option<String>,
pub cover_width: i64,
pub cover_height: i64,
pub account_url: Option<String>,
pub account_id: Option<AccountId>,
pub privacy: String,
pub layout: String,
pub views: i64,
/// Album link
pub link: String,
pub favorite: bool,
pub nsfw: bool,
pub section: Option<String>,
pub images_count: i64,
pub in_gallery: bool,
pub is_ad: bool,
pub include_album_ads: bool,
pub is_album: bool,
pub images: Vec<ImageInfoData>,
pub ad_config: AdConfig,
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
#[serde(untagged)]
pub enum AccountId {
String(String),
Int(i64),
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
pub struct AdConfig {
#[serde(rename = "safeFlags")]
pub safe_flags: Vec<String>,
#[serde(rename = "highRiskFlags")]
pub high_risk_flags: Vec<String>,
#[serde(rename = "unsafeFlags")]
pub unsafe_flags: Vec<String>,
#[serde(rename = "wallUnsafeFlags")]
pub wall_unsafe_flags: Vec<String>,
#[serde(rename = "showsAds")]
pub shows_ads: bool,
#[serde(rename = "showAdLevel")]
pub show_ad_level: i64,
}