39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
use peach_lib::{config_manager, dyndns_client};
|
|
use rocket::serde::Serialize;
|
|
|
|
#[derive(Debug, Serialize)]
|
|
pub struct ConfigureDNSContext {
|
|
pub external_domain: String,
|
|
pub dyndns_subdomain: String,
|
|
pub enable_dyndns: bool,
|
|
pub is_dyndns_online: bool,
|
|
pub back: Option<String>,
|
|
pub title: Option<String>,
|
|
pub flash_name: Option<String>,
|
|
pub flash_msg: Option<String>,
|
|
pub theme: Option<String>,
|
|
}
|
|
|
|
impl ConfigureDNSContext {
|
|
pub fn build() -> ConfigureDNSContext {
|
|
// TODO: replace `unwrap` with resilient error handling
|
|
let peach_config = config_manager::load_peach_config().unwrap();
|
|
let dyndns_fulldomain = peach_config.dyn_domain;
|
|
let is_dyndns_online = dyndns_client::is_dns_updater_online().unwrap();
|
|
let dyndns_subdomain =
|
|
dyndns_client::get_dyndns_subdomain(&dyndns_fulldomain).unwrap_or(dyndns_fulldomain);
|
|
|
|
ConfigureDNSContext {
|
|
external_domain: peach_config.external_domain,
|
|
dyndns_subdomain,
|
|
enable_dyndns: peach_config.dyn_enabled,
|
|
is_dyndns_online,
|
|
back: None,
|
|
title: None,
|
|
flash_name: None,
|
|
flash_msg: None,
|
|
theme: None,
|
|
}
|
|
}
|
|
}
|