Add component configs

This commit is contained in:
Andras Schmelczer 2024-12-08 10:58:54 +00:00
parent f4ece4e33d
commit c336f84af9
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
3 changed files with 92 additions and 0 deletions

View file

@ -0,0 +1,30 @@
use std::path::Path;
use anyhow::{Context, Result};
use log::debug;
use serde::{Deserialize, Serialize};
use tokio::fs;
use crate::{
consts::{DEFAULT_HOST, DEFAULT_MAX_CONNECTIONS, DEFAULT_PORT, DEFAULT_SQLITE_URL},
errors::SyncServerError,
};
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct DatabaseConfig {
#[serde(default = "default_sqlite_url")]
pub sqlite_url: String,
#[serde(default = "default_max_connections")]
pub max_connections: u32,
}
fn default_sqlite_url() -> String {
debug!("Using default sqlite url: {}", DEFAULT_SQLITE_URL);
DEFAULT_SQLITE_URL.to_string()
}
fn default_max_connections() -> u32 {
debug!("Using default max connections: {}", DEFAULT_MAX_CONNECTIONS);
DEFAULT_MAX_CONNECTIONS
}

View file

@ -0,0 +1,40 @@
use std::path::Path;
use anyhow::{Context, Result};
use log::debug;
use serde::{Deserialize, Serialize};
use tokio::fs;
use crate::{
consts::{DEFAULT_HOST, DEFAULT_MAX_BODY_SIZE_MB, DEFAULT_PORT, DEFAULT_SQLITE_URL},
errors::SyncServerError,
};
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ServerConfig {
#[serde(default = "default_host")]
pub host: String,
#[serde(default = "default_port")]
pub port: u16,
#[serde(default = "default_max_body_size_mb")]
pub max_body_size_mb: usize,
}
fn default_host() -> String {
debug!("Using default server host: {}", DEFAULT_HOST);
DEFAULT_HOST.to_string()
}
fn default_port() -> u16 {
debug!("Using default server port: {}", DEFAULT_PORT);
DEFAULT_PORT
}
fn default_max_body_size_mb() -> usize {
debug!(
"Using default max body size (MB): {}",
DEFAULT_MAX_BODY_SIZE_MB
);
DEFAULT_MAX_BODY_SIZE_MB
}

View file

@ -0,0 +1,22 @@
use std::path::Path;
use anyhow::{Context, Result};
use log::debug;
use serde::{Deserialize, Serialize};
use tokio::fs;
use crate::{
consts::{DEFAULT_HOST, DEFAULT_MAX_CONNECTIONS, DEFAULT_PORT, DEFAULT_SQLITE_URL},
errors::SyncServerError,
};
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct UserConfig {
#[serde(default = "Vec::new")]
pub users: Vec<User>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct User {
pub name: String,
pub token: String,
}