diff --git a/backend/sync_server/src/config/database_config.rs b/backend/sync_server/src/config/database_config.rs new file mode 100644 index 00000000..1e50d754 --- /dev/null +++ b/backend/sync_server/src/config/database_config.rs @@ -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 +} diff --git a/backend/sync_server/src/config/server_config.rs b/backend/sync_server/src/config/server_config.rs new file mode 100644 index 00000000..b6c785c5 --- /dev/null +++ b/backend/sync_server/src/config/server_config.rs @@ -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 +} diff --git a/backend/sync_server/src/config/user_config.rs b/backend/sync_server/src/config/user_config.rs new file mode 100644 index 00000000..d968919f --- /dev/null +++ b/backend/sync_server/src/config/user_config.rs @@ -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, +} + +#[derive(Debug, Deserialize, Serialize, Clone)] +pub struct User { + pub name: String, + pub token: String, +}