Made database location configurable
This commit is contained in:
parent
7d7ff22526
commit
3c67388fae
5 changed files with 13 additions and 8 deletions
|
@ -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(),
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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)?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue