clean up db type code to better match actual usage
parent
2f68323ecb
commit
1df746596f
|
@ -1,27 +1,27 @@
|
|||
use crate::addressing::Address;
|
||||
use crate::database::entry::{EntryValue, InvariantEntry};
|
||||
|
||||
pub const TYPE_TYPE: &str = "TYPE";
|
||||
pub const TYPE_IS_ATTR: &str = "TYPE";
|
||||
pub const TYPE_REQUIRES_ATTR: &str = "TYPE_REQUIRES";
|
||||
pub const TYPE_TYPE_VAL: &str = "TYPE";
|
||||
pub const TYPE_BASE_ATTR: &str = "TYPE";
|
||||
pub const TYPE_HAS_ATTR: &str = "TYPE_HAS";
|
||||
pub const TYPE_ID_ATTR: &str = "TYPE_ID";
|
||||
pub const TYPE_INSTANCES_ATTR: &str = "TYPE_INSTANCES";
|
||||
// pub const TYPE_ATTR_REQUIRED: &str = "TYPE_ATTR_REQUIRED";
|
||||
|
||||
pub const IS_OF_TYPE_ATTR: &str = "IS";
|
||||
|
||||
pub const HIER_TYPE: &str = "HIER";
|
||||
pub const HIER_TYPE_VAL: &str = "HIER";
|
||||
pub const HIER_HAS_ATTR: &str = "HAS";
|
||||
pub const HIER_LABEL_ATTR: &str = "LBL";
|
||||
|
||||
pub const LABEL_ATTR: &str = "LBL";
|
||||
|
||||
lazy_static! {
|
||||
pub static ref TYPE_INVARIANT: InvariantEntry = InvariantEntry {
|
||||
attribute: String::from(TYPE_IS_ATTR),
|
||||
value: EntryValue::Value(serde_json::Value::from(TYPE_TYPE)),
|
||||
attribute: String::from(TYPE_BASE_ATTR),
|
||||
value: EntryValue::Value(serde_json::Value::from(TYPE_TYPE_VAL)),
|
||||
};
|
||||
pub static ref TYPE_ADDR: Address = TYPE_INVARIANT.entity().unwrap();
|
||||
pub static ref HIER_INVARIANT: InvariantEntry = InvariantEntry {
|
||||
attribute: String::from(TYPE_IS_ATTR),
|
||||
value: EntryValue::Value(serde_json::Value::from(HIER_TYPE)),
|
||||
attribute: String::from(TYPE_BASE_ATTR),
|
||||
value: EntryValue::Value(serde_json::Value::from(HIER_TYPE_VAL)),
|
||||
};
|
||||
pub static ref HIER_ADDR: Address = HIER_INVARIANT.entity().unwrap();
|
||||
}
|
||||
|
|
|
@ -9,8 +9,7 @@ use uuid::Uuid;
|
|||
|
||||
use crate::addressing::Address;
|
||||
use crate::database::constants::{
|
||||
HIER_ADDR, HIER_HAS_ATTR, HIER_INVARIANT, HIER_LABEL_ATTR, IS_OF_TYPE_ATTR, TYPE_ADDR,
|
||||
TYPE_HAS_ATTR, TYPE_ID_ATTR,
|
||||
HIER_ADDR, HIER_HAS_ATTR, HIER_INVARIANT, IS_OF_TYPE_ATTR, LABEL_ATTR, TYPE_ADDR, TYPE_HAS_ATTR,
|
||||
};
|
||||
use crate::database::entry::{Entry, EntryValue, InvariantEntry};
|
||||
use crate::database::lang::{EntryQuery, Query, QueryComponent, QueryPart};
|
||||
|
@ -18,7 +17,7 @@ use crate::database::{bulk_retrieve_objects, insert_entry, query, DbPool};
|
|||
|
||||
lazy_static! {
|
||||
static ref HIER_ROOT_INVARIANT: InvariantEntry = InvariantEntry {
|
||||
attribute: String::from(HIER_LABEL_ATTR),
|
||||
attribute: String::from(LABEL_ATTR),
|
||||
value: EntryValue::Value(Value::from("/")),
|
||||
};
|
||||
static ref HIER_ROOT_INVARIANT_ADDR: Address = HIER_ROOT_INVARIANT.entity().unwrap();
|
||||
|
@ -169,7 +168,7 @@ pub fn fetch_or_create_dir<C: Connection<Backend = Sqlite>>(
|
|||
connection,
|
||||
Query::SingleQuery(QueryPart::Matches(EntryQuery {
|
||||
entity: QueryComponent::Any,
|
||||
attribute: QueryComponent::Exact(String::from(HIER_LABEL_ATTR)),
|
||||
attribute: QueryComponent::Exact(String::from(LABEL_ATTR)),
|
||||
value: QueryComponent::Exact(EntryValue::Value(Value::String(
|
||||
directory.as_ref().clone(),
|
||||
))),
|
||||
|
@ -205,7 +204,7 @@ pub fn fetch_or_create_dir<C: Connection<Backend = Sqlite>>(
|
|||
|
||||
let directory_entry = Entry {
|
||||
entity: new_directory_address.clone(),
|
||||
attribute: String::from(HIER_LABEL_ATTR),
|
||||
attribute: String::from(LABEL_ATTR),
|
||||
value: EntryValue::Value(Value::String(directory.as_ref().clone())),
|
||||
};
|
||||
insert_entry(connection, directory_entry)?;
|
||||
|
@ -254,7 +253,6 @@ pub fn resolve_path<C: Connection<Backend = Sqlite>>(
|
|||
pub fn initialize_hier(pool: &DbPool) -> Result<()> {
|
||||
insert_entry(&pool.get()?, Entry::try_from(&*HIER_INVARIANT)?)?;
|
||||
upend_insert_addr!(&pool.get()?, HIER_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR);
|
||||
upend_insert_val!(&pool.get()?, HIER_ADDR, TYPE_ID_ATTR, HIER_LABEL_ATTR);
|
||||
upend_insert_val!(&pool.get()?, HIER_ADDR, TYPE_HAS_ATTR, HIER_HAS_ATTR);
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -10,9 +10,7 @@ pub mod inner;
|
|||
pub mod lang;
|
||||
|
||||
use crate::addressing::Address;
|
||||
use crate::database::constants::{
|
||||
IS_OF_TYPE_ATTR, TYPE_ADDR, TYPE_ID_ATTR, TYPE_INVARIANT, TYPE_IS_ATTR,
|
||||
};
|
||||
use crate::database::constants::{IS_OF_TYPE_ATTR, TYPE_ADDR, TYPE_HAS_ATTR, TYPE_INVARIANT};
|
||||
use crate::database::entry::{Entry, EntryValue};
|
||||
use crate::database::inner::models;
|
||||
use crate::database::inner::schema::data;
|
||||
|
@ -281,7 +279,7 @@ pub fn open_upend<P: AsRef<Path>>(
|
|||
fn initialize_types(pool: &DbPool) -> Result<()> {
|
||||
insert_entry(&pool.get()?, Entry::try_from(&*TYPE_INVARIANT)?)?;
|
||||
upend_insert_addr!(&pool.get()?, TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR);
|
||||
upend_insert_val!(&pool.get()?, TYPE_ADDR, TYPE_ID_ATTR, TYPE_IS_ATTR);
|
||||
upend_insert_val!(&pool.get()?, TYPE_ADDR, TYPE_HAS_ATTR, TYPE_HAS_ATTR);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -6,8 +6,7 @@ use std::{fs, iter};
|
|||
|
||||
use crate::addressing::Address;
|
||||
use crate::database::constants::{
|
||||
HIER_HAS_ATTR, IS_OF_TYPE_ATTR, TYPE_ADDR, TYPE_HAS_ATTR, TYPE_ID_ATTR, TYPE_INSTANCES_ATTR,
|
||||
TYPE_IS_ATTR, TYPE_REQUIRES_ATTR,
|
||||
HIER_HAS_ATTR, IS_OF_TYPE_ATTR, TYPE_ADDR, TYPE_BASE_ATTR, TYPE_HAS_ATTR,
|
||||
};
|
||||
use crate::database::entry::{Entry, EntryValue, InvariantEntry};
|
||||
use crate::database::hierarchies::{resolve_path, UNode, UPath};
|
||||
|
@ -26,24 +25,15 @@ use rayon::prelude::*;
|
|||
use serde_json::Value;
|
||||
use walkdir::WalkDir;
|
||||
|
||||
const DIR_TYPE: &str = "FS_DIR";
|
||||
const DIR_KEY: &str = "DIR";
|
||||
lazy_static! {
|
||||
static ref DIR_TYPE_INVARIANT: InvariantEntry = InvariantEntry {
|
||||
attribute: String::from(TYPE_IS_ATTR),
|
||||
value: EntryValue::Value(Value::from(DIR_TYPE)),
|
||||
};
|
||||
static ref DIR_TYPE_ADDR: Address = DIR_TYPE_INVARIANT.entity().unwrap();
|
||||
}
|
||||
|
||||
const BLOB_TYPE: &str = "BLOB";
|
||||
const ALIAS_KEY: &str = "ALIAS";
|
||||
const FILE_MIME_KEY: &str = "FILE_MIME";
|
||||
const FILE_MTIME_KEY: &str = "FILE_MTIME";
|
||||
const FILE_SIZE_KEY: &str = "FILE_SIZE";
|
||||
|
||||
lazy_static! {
|
||||
static ref BLOB_TYPE_INVARIANT: InvariantEntry = InvariantEntry {
|
||||
attribute: String::from(TYPE_IS_ATTR),
|
||||
attribute: String::from(TYPE_BASE_ATTR),
|
||||
value: EntryValue::Value(Value::from(BLOB_TYPE)),
|
||||
};
|
||||
static ref BLOB_TYPE_ADDR: Address = BLOB_TYPE_INVARIANT.entity().unwrap();
|
||||
|
@ -57,12 +47,6 @@ fn initialize_types(pool: &DbPool) -> Result<()> {
|
|||
upend_insert_val!(&pool.get()?, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_SIZE_KEY);
|
||||
upend_insert_val!(&pool.get()?, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_MIME_KEY);
|
||||
|
||||
// DIR_TYPE
|
||||
insert_entry(&pool.get()?, Entry::try_from(&*DIR_TYPE_INVARIANT)?)?;
|
||||
upend_insert_addr!(&pool.get()?, DIR_TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR);
|
||||
upend_insert_val!(&pool.get()?, DIR_TYPE_ADDR, TYPE_ID_ATTR, DIR_KEY);
|
||||
upend_insert_val!(&pool.get()?, DIR_TYPE_ADDR, TYPE_HAS_ATTR, HIER_HAS_ATTR);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue