use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Serialize, Deserialize, Debug, Clone, Copy, Default)]
pub enum CallbackBodyType {
FormUrlEncoded,
#[default]
JSON,
}
impl fmt::Display for CallbackBodyType {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::FormUrlEncoded => write!(f, "{}", "a"),
Self::JSON => write!(f, "{}", "b"),
}
}
}
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
pub struct CallbackBody {
pub bucket: String,
pub object: String,
pub etag: String,
pub size: String,
pub mime_type: String,
pub imageinfo_height: String,
pub imageinfo_width: String,
pub imageinfo_format: String,
pub crc64: String,
pub content_md5: String,
pub vpc_id: String,
pub client_ip: String,
pub req_id: String,
pub operation: String,
}
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
pub struct Callback {
pub callback_url: String,
pub callback_host: Option<String>,
pub callback_body: CallbackBody,
pub callback_sni: Option<String>,
pub callback_body_type: Option<CallbackBodyType>,
}