Made database location configurable

This commit is contained in:
Philip (a-0) 2024-01-07 22:14:04 +01:00
parent 7d7ff22526
commit 3c67388fae
5 changed files with 13 additions and 8 deletions

View file

@ -3,6 +3,7 @@ use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Config {
pub i2p_private_key: Option<String>,
pub database_location: String,
pub api_config: ApiConfig,
pub jwt_secret: String,
}
@ -11,6 +12,7 @@ impl Default for Config {
fn default() -> Self {
Config {
i2p_private_key: None,
database_location: "mem".to_string(),
api_config: Default::default(),
jwt_secret: "insecuresecret".to_string(),
}

View file

@ -23,7 +23,7 @@ pub struct Ubisync {
impl Ubisync {
pub async fn new(config: &Config) -> anyhow::Result<Self> {
let state = State::new().await?;
let state = State::new(&config.database_location).await?;
let comm_handle = Arc::new(CommHandle::new(CommState::new(state.clone()), config)?);
state.set_comm_handle(comm_handle.clone());

View file

@ -115,7 +115,7 @@ mod tests {
tracing_setup!(Level::DEBUG);
let state = ApiState::new(
State::new().await.unwrap(),
State::new("mem").await.unwrap(),
"abcdabcdabcdabcdabcdabcdabcdabcd",
);
let id = state
@ -134,7 +134,7 @@ mod tests {
tracing_setup!(Level::DEBUG);
let state = ApiState::new(
State::new().await.unwrap(),
State::new("mem").await.unwrap(),
"abcdabcdabcdabcdabcdabcdabcdabcd",
);
let id = state

View file

@ -92,7 +92,7 @@ mod tests {
async fn test_element_add() {
tracing_setup!(Level::DEBUG);
let state = CommState::new(State::new().await.unwrap());
let state = CommState::new(State::new("mem").await.unwrap());
let id = ElementId::new();
state
.add_received_element(
@ -113,7 +113,7 @@ mod tests {
async fn test_element_update() {
tracing_setup!(Level::DEBUG);
let state = CommState::new(State::new().await.unwrap());
let state = CommState::new(State::new("mem").await.unwrap());
let id = ElementId::new();
state
.add_received_element(

View file

@ -22,8 +22,11 @@ pub struct State {
}
impl State {
pub async fn new() -> anyhow::Result<Arc<State>> {
let db = DbInstance::new("mem", "", Default::default());
pub async fn new(db_location: &str) -> anyhow::Result<Arc<State>> {
let db = match db_location {
"mem" => DbInstance::new("mem", "", Default::default()),
path => DbInstance::new("rocksdb", path, Default::default()),
};
match db {
Ok(d) => {
schema::add_schema(&d)?;