34 lines
963 B
Rust
34 lines
963 B
Rust
|
use serde::{Deserialize, Serialize};
|
||
|
|
||
|
#[derive(Deserialize, Serialize, Debug, Clone)]
|
||
|
pub struct EndpointConfig {
|
||
|
pub label: Option<String>,
|
||
|
pub endpoint: Option<String>,
|
||
|
pub port: Option<u16>,
|
||
|
pub code: Option<u16>,
|
||
|
pub body: Option<String>,
|
||
|
}
|
||
|
|
||
|
#[derive(Deserialize, Serialize, Debug, Clone)]
|
||
|
pub struct WebsiteConfig {
|
||
|
pub label: String,
|
||
|
pub base: String,
|
||
|
pub endpoints: Vec<EndpointConfig>,
|
||
|
}
|
||
|
|
||
|
#[derive(Deserialize, Serialize, Debug, Clone)]
|
||
|
pub struct Config {
|
||
|
pub refresh_time: u64,
|
||
|
pub bind_address: String,
|
||
|
pub websites: Vec<WebsiteConfig>,
|
||
|
}
|
||
|
|
||
|
pub fn get_endpoint_info(endpoint: EndpointConfig) -> (String, String, Option<u16>, u16, String) {
|
||
|
let path = endpoint.endpoint.unwrap_or_default();
|
||
|
let label = endpoint.label.unwrap_or_else(|| path.clone());
|
||
|
let code = endpoint.code.unwrap_or_else(|| 200);
|
||
|
let body = endpoint.body.unwrap_or_default();
|
||
|
|
||
|
(label, path, endpoint.port, code, body)
|
||
|
}
|