diff --git a/src/database/hierarchies.rs b/src/database/hierarchies.rs index 6e25e2c..a6a88c7 100644 --- a/src/database/hierarchies.rs +++ b/src/database/hierarchies.rs @@ -269,8 +269,8 @@ pub fn resolve_path_cached( pub fn initialize_hier(connection: &UpEndConnection) -> Result<()> { connection.insert_entry(Entry::try_from(&*HIER_INVARIANT)?)?; - upend_insert_addr!(&connection, HIER_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); - upend_insert_val!(&connection, HIER_ADDR, TYPE_HAS_ATTR, HIER_HAS_ATTR); + upend_insert_addr!(connection, HIER_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); + upend_insert_val!(connection, HIER_ADDR, TYPE_HAS_ATTR, HIER_HAS_ATTR); Ok(()) } diff --git a/src/database/mod.rs b/src/database/mod.rs index aac2b1c..65cb0c8 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -137,15 +137,15 @@ impl UpEndDatabase { trace!("Initializing types..."); connection.insert_entry(Entry::try_from(&*TYPE_INVARIANT)?)?; - upend_insert_addr!(&connection, TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); - upend_insert_val!(&connection, TYPE_ADDR, TYPE_HAS_ATTR, TYPE_HAS_ATTR); + upend_insert_addr!(connection, TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); + upend_insert_val!(connection, TYPE_ADDR, TYPE_HAS_ATTR, TYPE_HAS_ATTR); initialize_hier(&connection)?; Ok(OpenResult { db, new }) } - pub fn connection(self: &Self) -> Result { + pub fn connection(&self) -> Result { Ok(UpEndConnection(self.pool.get()?)) } } @@ -153,7 +153,7 @@ impl UpEndDatabase { pub struct UpEndConnection(PooledConnection>); impl UpEndConnection { - pub fn execute>(self: &Self, query: S) -> Result { + pub fn execute>(&self, query: S) -> Result { self.0.execute(query.as_ref()) } @@ -165,7 +165,7 @@ impl UpEndConnection { self.0.transaction(f) } - pub fn insert_file(self: &Self, file: models::NewFile) -> Result { + pub fn insert_file(&self, file: models::NewFile) -> Result { use crate::database::inner::schema::files; debug!( @@ -179,7 +179,7 @@ impl UpEndConnection { .execute(&self.0)?) } - pub fn retrieve_file(self: &Self, obj_hash: Hash) -> Result> { + pub fn retrieve_file(&self, obj_hash: Hash) -> Result> { use crate::database::inner::schema::files::dsl::*; let matches = files @@ -190,13 +190,13 @@ impl UpEndConnection { Ok(matches) } - pub fn retrieve_all_files(self: &Self) -> Result> { + pub fn retrieve_all_files(&self) -> Result> { use crate::database::inner::schema::files::dsl::*; let matches = files.load::(&self.0)?; Ok(matches) } - pub fn get_latest_files(self: &Self, count: i64) -> Result> { + pub fn get_latest_files(&self, count: i64) -> Result> { use crate::database::inner::schema::files::dsl::*; let matches = files @@ -208,7 +208,7 @@ impl UpEndConnection { } pub fn file_update_mtime( - self: &Self, + &self, file_id: i32, m_time: Option, ) -> Result { @@ -221,7 +221,7 @@ impl UpEndConnection { .execute(&self.0)?) } - pub fn file_set_valid(self: &Self, file_id: i32, is_valid: bool) -> Result { + pub fn file_set_valid(&self, file_id: i32, is_valid: bool) -> Result { use crate::database::inner::schema::files::dsl::*; debug!("Setting file ID {} to valid = {}", file_id, is_valid); @@ -231,7 +231,7 @@ impl UpEndConnection { .execute(&self.0)?) } - pub fn retrieve_object(self: &Self, object_address: Address) -> Result> { + pub fn retrieve_object(&self, object_address: Address) -> Result> { use crate::database::inner::schema::data::dsl::*; let primary = data @@ -265,7 +265,7 @@ impl UpEndConnection { Ok([entries, secondary_entries].concat()) } - pub fn remove_object(self: &Self, object_address: Address) -> Result { + pub fn remove_object(&self, object_address: Address) -> Result { use crate::database::inner::schema::data::dsl::*; debug!("Deleting {}!", object_address); @@ -278,7 +278,7 @@ impl UpEndConnection { Ok(diesel::delete(matches).execute(&self.0)?) } - pub fn query(self: &Self, query: Query) -> Result> { + pub fn query(&self, query: Query) -> Result> { use crate::database::inner::schema::data::dsl::*; trace!("Querying: {:?}", query); @@ -298,7 +298,7 @@ impl UpEndConnection { Ok(entries) } - pub fn insert_entry(self: &Self, entry: Entry) -> Result
{ + pub fn insert_entry(&self, entry: Entry) -> Result
{ debug!("Inserting: {}", entry); let insert_entry = models::Entry::try_from(&entry)?; diff --git a/src/filesystem.rs b/src/filesystem.rs index a0bbc6e..0c74944 100644 --- a/src/filesystem.rs +++ b/src/filesystem.rs @@ -40,10 +40,10 @@ lazy_static! { fn initialize_types(connection: &UpEndConnection) -> Result<()> { // BLOB_TYPE connection.insert_entry(Entry::try_from(&*BLOB_TYPE_INVARIANT)?)?; - upend_insert_addr!(&connection, BLOB_TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); - upend_insert_val!(&connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_MTIME_KEY); - upend_insert_val!(&connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_SIZE_KEY); - upend_insert_val!(&connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_MIME_KEY); + upend_insert_addr!(connection, BLOB_TYPE_ADDR, IS_OF_TYPE_ATTR, TYPE_ADDR); + upend_insert_val!(connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_MTIME_KEY); + upend_insert_val!(connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_SIZE_KEY); + upend_insert_val!(connection, BLOB_TYPE_ADDR, TYPE_HAS_ATTR, FILE_MIME_KEY); Ok(()) } diff --git a/src/routes.rs b/src/routes.rs index 0379b21..76565ae 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -7,7 +7,7 @@ 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::http::{self}; +use actix_web::http; use actix_web::{delete, error, get, post, put, web, Either, Error, HttpResponse}; use anyhow::Result; use futures_util::StreamExt; @@ -51,43 +51,41 @@ pub async fn get_raw( if let Some(file) = files.get(0) { let file_path = state.upend.vault_path.join(&file.path); - if !query.native.is_some() { + if query.native.is_none() { Ok(Either::A(NamedFile::open(file_path)?)) - } else { - if cfg!(feature = "desktop") { - #[cfg(feature = "desktop")] - { - info!("Opening {:?}...", file_path); - let mut response = HttpResponse::NoContent(); - let path = if !file_path.is_executable() { - file_path - } else { - response - .header( - http::header::WARNING, - "199 - Opening parent directory due to file being executable.", - ) - .header( - http::header::ACCESS_CONTROL_EXPOSE_HEADERS, - http::header::WARNING.to_string(), - ); + } else if cfg!(feature = "desktop") { + #[cfg(feature = "desktop")] + { + info!("Opening {:?}...", file_path); + let mut response = HttpResponse::NoContent(); + let path = if !file_path.is_executable() { + file_path + } else { + response + .header( + http::header::WARNING, + "199 - Opening parent directory due to file being executable.", + ) + .header( + http::header::ACCESS_CONTROL_EXPOSE_HEADERS, + http::header::WARNING.to_string(), + ); - file_path - .parent() - .ok_or_else(|| { - ErrorInternalServerError("No parent to open as fallback.") - })? - .to_path_buf() - }; - opener::open(path).map_err(error::ErrorServiceUnavailable)?; - return Ok(Either::B(response.finish())); - } - - #[cfg(not(feature = "desktop"))] - !unreachable() - } else { - Err(error::ErrorBadRequest("Desktop features not enabled.")) + file_path + .parent() + .ok_or_else(|| { + ErrorInternalServerError("No parent to open as fallback.") + })? + .to_path_buf() + }; + opener::open(path).map_err(error::ErrorServiceUnavailable)?; + Ok(Either::B(response.finish())) } + + #[cfg(not(feature = "desktop"))] + unreachable!() + } else { + Err(error::ErrorBadRequest("Desktop features not enabled.")) } } else { Err(error::ErrorNotFound("NOT FOUND"))