add server-side config --snapshot-{days,versions}

This commit is contained in:
Dustin J. Mitchell 2021-10-06 04:01:22 +00:00
parent 74aee49107
commit 4d19ca7bdb
14 changed files with 305 additions and 91 deletions

View file

@ -3,7 +3,7 @@
use actix_web::{middleware::Logger, App, HttpServer};
use clap::Arg;
use taskchampion_sync_server::storage::SqliteStorage;
use taskchampion_sync_server::Server;
use taskchampion_sync_server::{Server, ServerConfig};
#[actix_web::main]
async fn main() -> anyhow::Result<()> {
@ -31,12 +31,33 @@ async fn main() -> anyhow::Result<()> {
.takes_value(true)
.required(true),
)
.arg(
Arg::with_name("snapshot-versions")
.long("snapshot-versions")
.value_name("NUM")
.help("Target number of versions between snapshots")
.default_value("100")
.takes_value(true)
.required(false),
)
.arg(
Arg::with_name("snapshot-days")
.long("snapshot-days")
.value_name("NUM")
.help("Target number of days between snapshots")
.default_value("14")
.takes_value(true)
.required(false),
)
.get_matches();
let data_dir = matches.value_of("data-dir").unwrap();
let port = matches.value_of("port").unwrap();
let snapshot_versions = matches.value_of("snapshot-versions").unwrap();
let snapshot_days = matches.value_of("snapshot-versions").unwrap();
let server = Server::new(Box::new(SqliteStorage::new(data_dir)?));
let config = ServerConfig::from_args(snapshot_days, snapshot_versions)?;
let server = Server::new(config, Box::new(SqliteStorage::new(data_dir)?));
log::warn!("Serving on port {}", port);
HttpServer::new(move || {
@ -58,7 +79,7 @@ mod test {
#[actix_rt::test]
async fn test_index_get() {
let server = Server::new(Box::new(InMemoryStorage::new()));
let server = Server::new(Default::default(), Box::new(InMemoryStorage::new()));
let app = App::new().configure(|sc| server.config(sc));
let mut app = test::init_service(app).await;