mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-24 18:06:42 +02:00
move ServerConfig to crate::server
This commit is contained in:
parent
4d19ca7bdb
commit
329c0d0aef
2 changed files with 34 additions and 32 deletions
|
@ -6,10 +6,11 @@ pub mod storage;
|
||||||
|
|
||||||
use crate::storage::Storage;
|
use crate::storage::Storage;
|
||||||
use actix_web::{get, middleware, web, Responder};
|
use actix_web::{get, middleware, web, Responder};
|
||||||
use anyhow::Context;
|
|
||||||
use api::{api_scope, ServerState};
|
use api::{api_scope, ServerState};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
pub use server::ServerConfig;
|
||||||
|
|
||||||
#[get("/")]
|
#[get("/")]
|
||||||
async fn index() -> impl Responder {
|
async fn index() -> impl Responder {
|
||||||
format!("TaskChampion sync server v{}", env!("CARGO_PKG_VERSION"))
|
format!("TaskChampion sync server v{}", env!("CARGO_PKG_VERSION"))
|
||||||
|
@ -21,36 +22,6 @@ pub struct Server {
|
||||||
server_state: Arc<ServerState>,
|
server_state: Arc<ServerState>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// ServerConfig contains configuration parameters for the server.
|
|
||||||
pub struct ServerConfig {
|
|
||||||
/// Target number of days between snapshots.
|
|
||||||
pub snapshot_days: i64,
|
|
||||||
|
|
||||||
/// Target number of versions between snapshots.
|
|
||||||
pub snapshot_versions: u32,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for ServerConfig {
|
|
||||||
fn default() -> Self {
|
|
||||||
ServerConfig {
|
|
||||||
snapshot_days: 14,
|
|
||||||
snapshot_versions: 100,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl ServerConfig {
|
|
||||||
pub fn from_args(snapshot_days: &str, snapshot_versions: &str) -> anyhow::Result<ServerConfig> {
|
|
||||||
Ok(ServerConfig {
|
|
||||||
snapshot_days: snapshot_days
|
|
||||||
.parse()
|
|
||||||
.context("--snapshot-days must be a number")?,
|
|
||||||
snapshot_versions: snapshot_versions
|
|
||||||
.parse()
|
|
||||||
.context("--snapshot-days must be a number")?,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Server {
|
impl Server {
|
||||||
/// Create a new sync server with the given storage implementation.
|
/// Create a new sync server with the given storage implementation.
|
||||||
pub fn new(config: ServerConfig, storage: Box<dyn Storage>) -> Self {
|
pub fn new(config: ServerConfig, storage: Box<dyn Storage>) -> Self {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//! invariants, and so on. This does not implement the HTTP-specific portions; those
|
//! invariants, and so on. This does not implement the HTTP-specific portions; those
|
||||||
//! are in [`crate::api`]. See the protocol documentation for details.
|
//! are in [`crate::api`]. See the protocol documentation for details.
|
||||||
use crate::storage::{Client, Snapshot, StorageTxn};
|
use crate::storage::{Client, Snapshot, StorageTxn};
|
||||||
use crate::ServerConfig; // TODO: move here
|
use anyhow::Context;
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
@ -18,6 +18,37 @@ pub(crate) type HistorySegment = Vec<u8>;
|
||||||
pub(crate) type ClientKey = Uuid;
|
pub(crate) type ClientKey = Uuid;
|
||||||
pub(crate) type VersionId = Uuid;
|
pub(crate) type VersionId = Uuid;
|
||||||
|
|
||||||
|
/// ServerConfig contains configuration parameters for the server.
|
||||||
|
pub struct ServerConfig {
|
||||||
|
/// Target number of days between snapshots.
|
||||||
|
pub snapshot_days: i64,
|
||||||
|
|
||||||
|
/// Target number of versions between snapshots.
|
||||||
|
pub snapshot_versions: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for ServerConfig {
|
||||||
|
fn default() -> Self {
|
||||||
|
ServerConfig {
|
||||||
|
snapshot_days: 14,
|
||||||
|
snapshot_versions: 100,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ServerConfig {
|
||||||
|
pub fn from_args(snapshot_days: &str, snapshot_versions: &str) -> anyhow::Result<ServerConfig> {
|
||||||
|
Ok(ServerConfig {
|
||||||
|
snapshot_days: snapshot_days
|
||||||
|
.parse()
|
||||||
|
.context("--snapshot-days must be a number")?,
|
||||||
|
snapshot_versions: snapshot_versions
|
||||||
|
.parse()
|
||||||
|
.context("--snapshot-days must be a number")?,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Response to get_child_version. See the protocol documentation.
|
/// Response to get_child_version. See the protocol documentation.
|
||||||
#[derive(Clone, PartialEq, Debug)]
|
#[derive(Clone, PartialEq, Debug)]
|
||||||
pub(crate) enum GetVersionResult {
|
pub(crate) enum GetVersionResult {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue