summaryrefslogtreecommitdiff
path: root/exes/rest/src/config.rs
blob: 900d3fb5dfee20b7f8770b3c5c8e2a013c58c258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use serde::Deserialize;
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};

fn default_listening_address() -> SocketAddr {
    SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 8090))
}

#[derive(Debug, Deserialize, Clone)]
pub struct ServerSettings {
    pub listening_adress: SocketAddr,
}
impl Default for ServerSettings {
    fn default() -> Self {
        Self {
            listening_adress: default_listening_address(),
        }
    }
}

#[derive(Debug, Deserialize, Clone, Default)]
pub struct Discord {
    pub token: String,
}

#[derive(Debug, Deserialize, Clone, Default)]
pub struct ReverseProxy {
    pub server: ServerSettings,
    pub discord: Discord,
    pub ratelimiter_address: String,
    pub ratelimiter_port: u16,
    #[serde(default = "default_upstream")]
    pub upstream: Option<String>,
}

#[allow(clippy::unnecessary_wraps)]
fn default_upstream() -> Option<String> {
    Some("https://discord.com".to_string())
}