use serde::{Deserialize, Serialize};
use zeroize::Zeroize;
#[derive(Serialize, Deserialize, Debug)]
pub struct CreateTokenRequest {
pub upload_size_limit: Option<i64>,
pub ttl_seconds: u64,
#[serde(default)]
pub one_time: bool,
}
impl CreateTokenRequest {
pub fn new(ttl_seconds: u64) -> Self {
Self {
upload_size_limit: None,
ttl_seconds,
one_time: false,
}
}
#[cfg(any(test, feature = "testing"))]
pub fn with_upload_size_limit(mut self, limit: i64) -> Self {
self.upload_size_limit = Some(limit);
self
}
#[cfg(any(test, feature = "testing"))]
pub fn with_one_time(mut self) -> Self {
self.one_time = true;
self
}
}
#[derive(Serialize, Deserialize, Debug)]
pub struct CreateTokenResponse {
pub token: String,
}
impl Zeroize for CreateTokenResponse {
fn zeroize(&mut self) {
self.token.zeroize();
}
}
impl Drop for CreateTokenResponse {
fn drop(&mut self) {
self.zeroize();
}
}