more cleanup and refactoring and moving

move models.rs and schema.rs into database::inner
create util module (with hash and jobs)
feat/vaults
Tomáš Mládek 2021-07-26 21:14:12 +02:00
parent 754c315cd2
commit 2b6886645b
13 changed files with 32 additions and 31 deletions

View File

@ -1,4 +1,4 @@
use crate::hash::{decode, encode, Hash, Hashable};
use crate::util::hash::{decode, encode, Hash, Hashable};
use anyhow::{anyhow, Result};
use serde::de::Visitor;
use serde::{de, ser, Deserialize, Deserializer, Serialize, Serializer};
@ -135,7 +135,7 @@ mod tests {
use uuid::Uuid;
use crate::addressing::Address;
use crate::hash::Hash;
use crate::util::hash::Hash;
#[test]
fn test_hash_codec() {

View File

@ -1,6 +1,6 @@
use crate::addressing::{Address, Addressable};
use crate::hash::{decode, hash, Hash, Hashable};
use crate::models;
use crate::database::inner::models;
use crate::util::hash::{decode, hash, Hash, Hashable};
use anyhow::{anyhow, Result};
use serde::{Deserialize, Serialize};
use std::convert::TryFrom;

View File

@ -0,0 +1,2 @@
pub mod models;
pub mod schema;

View File

@ -2,7 +2,7 @@ use chrono::NaiveDateTime;
use serde::Serialize;
use super::schema::{data, files};
use crate::hash::Hash;
use crate::util::hash::Hash;
#[derive(Queryable, Serialize, Debug)]
pub struct File {

View File

@ -1,6 +1,6 @@
use crate::addressing::Address;
use crate::database::entry::EntryValue;
use crate::schema::data;
use crate::database::inner::schema::data;
use anyhow::{anyhow, Result};
use diesel::expression::operators::{And, Or};
use diesel::sql_types::Bool;

View File

@ -2,6 +2,7 @@
pub mod constants;
pub mod entry;
pub mod inner;
pub mod lang;
use crate::addressing::Address;
@ -9,10 +10,10 @@ use crate::database::constants::{
IS_OF_TYPE_ATTR, TYPE_ADDR, TYPE_ID_ATTR, TYPE_INVARIANT, TYPE_IS_ATTR,
};
use crate::database::entry::{Entry, EntryValue};
use crate::database::inner::models;
use crate::database::inner::schema::data;
use crate::database::lang::Query;
use crate::hash::{Hash, Hashable};
use crate::models;
use crate::schema::data;
use crate::util::hash::{Hash, Hashable};
use crate::util::LoggerSink;
use anyhow::{anyhow, Result};
use diesel::debug_query;
@ -59,7 +60,7 @@ pub fn insert_file<C: Connection<Backend = Sqlite>>(
connection: &C,
file: models::NewFile,
) -> Result<usize> {
use crate::schema::files;
use crate::database::inner::schema::files;
debug!(
"Inserting {} ({})...",
@ -76,7 +77,7 @@ pub fn retrieve_file<C: Connection<Backend = Sqlite>>(
connection: &C,
obj_hash: Hash,
) -> Result<Vec<models::File>> {
use crate::schema::files::dsl::*;
use crate::database::inner::schema::files::dsl::*;
let matches = files
.filter(valid.eq(true))
@ -89,7 +90,7 @@ pub fn retrieve_file<C: Connection<Backend = Sqlite>>(
pub fn retrieve_all_files<C: Connection<Backend = Sqlite>>(
connection: &C,
) -> Result<Vec<models::File>> {
use crate::schema::files::dsl::*;
use crate::database::inner::schema::files::dsl::*;
let matches = files.load::<models::File>(connection)?;
Ok(matches)
}
@ -98,7 +99,7 @@ pub fn get_latest_files<C: Connection<Backend = Sqlite>>(
connection: &C,
count: i64,
) -> Result<Vec<models::File>> {
use crate::schema::files::dsl::*;
use crate::database::inner::schema::files::dsl::*;
let matches = files
.order_by(added.desc())
@ -113,7 +114,7 @@ pub fn file_set_valid<C: Connection<Backend = Sqlite>>(
file_id: i32,
is_valid: bool,
) -> Result<usize> {
use crate::schema::files::dsl::*;
use crate::database::inner::schema::files::dsl::*;
debug!("Setting file ID {} to valid = {}", file_id, is_valid);
@ -126,7 +127,7 @@ pub fn retrieve_object<C: Connection<Backend = Sqlite>>(
connection: &C,
object_address: Address,
) -> Result<Vec<Entry>> {
use crate::schema::data::dsl::*;
use crate::database::inner::schema::data::dsl::*;
let matches = data
.filter(entity.eq(object_address.encode()?))
@ -145,7 +146,7 @@ pub fn bulk_retrieve_objects<C: Connection<Backend = Sqlite>>(
connection: &C,
object_addresses: Vec<Address>,
) -> Result<Vec<Entry>> {
use crate::schema::data::dsl::*;
use crate::database::inner::schema::data::dsl::*;
let matches = data
.filter(
@ -170,7 +171,7 @@ pub fn remove_object<C: Connection<Backend = Sqlite>>(
connection: &C,
object_address: Address,
) -> Result<usize> {
use crate::schema::data::dsl::*;
use crate::database::inner::schema::data::dsl::*;
debug!("Deleting {}!", object_address);
@ -183,7 +184,7 @@ pub fn remove_object<C: Connection<Backend = Sqlite>>(
}
pub fn query<C: Connection<Backend = Sqlite>>(connection: &C, query: Query) -> Result<Vec<Entry>> {
use crate::schema::data::dsl::*;
use crate::database::inner::schema::data::dsl::*;
trace!("Querying: {:?}", query);

View File

@ -4,15 +4,14 @@ use crate::database::constants::{
TYPE_REQUIRES_ATTR,
};
use crate::database::entry::{Entry, EntryValue, InvariantEntry};
use crate::database::inner::models;
use crate::database::lang::{EntryQuery, Query, QueryComponent, QueryPart};
use crate::database::{
bulk_retrieve_objects, file_set_valid, insert_entry, insert_file, query, retrieve_all_files,
DbPool, DATABASE_FILENAME,
};
use crate::hash::Hashable;
use crate::jobs::{Job, JobContainer, JobId, State};
use crate::models;
use crate::models::File;
use crate::util::hash::Hashable;
use crate::util::jobs::{Job, JobContainer, JobId, State};
use anyhow::{anyhow, Error, Result};
use chrono::prelude::*;
use diesel::sqlite::Sqlite;
@ -504,7 +503,7 @@ fn _process_directory_entry<P: AsRef<Path>>(
db_pool: &Arc<RwLock<DbPool>>,
path: PathBuf,
directory_path: &P,
existing_files: &Arc<RwLock<Vec<File>>>,
existing_files: &Arc<RwLock<Vec<models::File>>>,
) -> UpdatePathResult {
info!("Processing: {:?}", path);

View File

@ -18,11 +18,7 @@ use std::sync::{Arc, RwLock};
mod addressing;
mod database;
mod filesystem;
mod hash;
mod jobs;
mod models;
mod routes;
mod schema;
mod util;
const VERSION: &str = env!("CARGO_PKG_VERSION");
@ -75,7 +71,7 @@ fn main() -> Result<()> {
info!("Starting UpEnd {}...", VERSION);
let sys = actix::System::new("upend");
let job_container = Arc::new(RwLock::new(jobs::JobContainer::default()));
let job_container = Arc::new(RwLock::new(util::jobs::JobContainer::default()));
let vault_path = PathBuf::from(matches.value_of("DIRECTORY").unwrap());

View File

@ -5,8 +5,8 @@ use crate::database::{
get_latest_files, insert_entry, query, remove_object, retrieve_file, retrieve_object, DbPool,
};
use crate::filesystem::{list_directory, UPath};
use crate::hash::{decode, encode};
use crate::jobs::JobContainer;
use crate::util::hash::{decode, encode};
use crate::util::jobs::JobContainer;
use actix_files::NamedFile;
use actix_web::error::{ErrorBadRequest, ErrorInternalServerError, ErrorNotFound};
use actix_web::{delete, error, get, post, put, web, Error, HttpResponse};

View File

@ -103,7 +103,7 @@ pub fn decode<T: AsRef<str>>(string: T) -> Result<Vec<u8>> {
#[cfg(test)]
mod tests {
use crate::hash::{decode, encode};
use crate::util::hash::{decode, encode};
#[test]
fn test_encode_decode() {

View File

@ -1,3 +1,6 @@
pub mod hash;
pub mod jobs;
use log::debug;
#[derive(Default)]