use std::error::Error;
use crate::settings::{key_or_default_parse, key_or_default, key_or_none};
#[derive(Debug)]
pub struct GStorageConfig {
pub oauth_token: Option<String>,
pub bucket_name: String,
pub folder: String,
pub remove: bool,
pub dcb_url: Option<String>,
pub upload_interval_secs: u64,
pub min_file_size: u64,
}
impl GStorageConfig {
pub fn new() -> Result<Self, Box<dyn Error>> {
Ok(GStorageConfig {
oauth_token: key_or_none("GCLOUD_OAUTH_TOKEN"),
bucket_name: key_or_default("GCLOUD_BUCKET_NAME", "tick_data"),
folder: key_or_default("GCLOUD_FOLDER", ""),
remove: key_or_default_parse("GCLOUD_REMOVE_ON_UPLOAD", true)?,
dcb_url: key_or_none("DCB_URL"),
upload_interval_secs: key_or_default_parse("GCLOUD_UPLOAD_INTERVAL_SECS", 30)?,
min_file_size: key_or_default_parse("GCLOUD_MIN_FILE_SIZE_BYTES", 1024 * 1024)?,
})
}
}