From ea6e6437be2fad49f871b9ee90d089cd59778793 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sun, 21 Mar 2021 09:44:07 -0400 Subject: [PATCH] Remove dead code and make some functions private --- src/web/file.rs | 37 +++++-------------------------------- src/web/metrics.rs | 4 ++-- 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/src/web/file.rs b/src/web/file.rs index de9b0ca4f..5dc6f4158 100644 --- a/src/web/file.rs +++ b/src/web/file.rs @@ -1,15 +1,15 @@ //! Database based file handler use crate::storage::{Blob, Storage}; -use crate::{error::Result, Config, Metrics}; -use iron::{status, Handler, IronResult, Request, Response}; +use crate::{error::Result, Config}; +use iron::{status, Response}; #[derive(Debug)] pub(crate) struct File(pub(crate) Blob); impl File { /// Gets file from database - pub fn from_path(storage: &Storage, path: &str, config: &Config) -> Result { + pub(super) fn from_path(storage: &Storage, path: &str, config: &Config) -> Result { let max_size = if path.ends_with(".html") { config.max_file_size_html } else { @@ -20,7 +20,7 @@ impl File { } /// Consumes File and creates a iron response - pub fn serve(self) -> Response { + pub(super) fn serve(self) -> Response { use iron::headers::{CacheControl, CacheDirective, ContentType, HttpDate, LastModified}; let mut response = Response::with((status::Ok, self.0.content)); @@ -44,38 +44,11 @@ impl File { } /// Checks if mime type of file is "application/x-empty" - pub fn is_empty(&self) -> bool { + pub(super) fn is_empty(&self) -> bool { self.0.mime == "application/x-empty" } } -/// Database based file handler for iron -/// -/// This is similar to staticfile crate, but its using getting files from database. -pub struct DatabaseFileHandler; - -impl Handler for DatabaseFileHandler { - fn handle(&self, req: &mut Request) -> IronResult { - let path = req.url.path().join("/"); - let storage = extension!(req, Storage); - let config = extension!(req, Config); - if let Ok(file) = File::from_path(&storage, &path, &config) { - let metrics = extension!(req, Metrics); - - // Because all requests that don't hit another handler go through here, we will get all - // requests successful or not recorded by the RequestRecorder, so we inject an extra - // "database success" route to keep track of how often we succeed vs 404 - metrics - .routes_visited - .with_label_values(&["database success"]) - .inc(); - Ok(file.serve()) - } else { - Err(super::error::Nope::CrateNotFound.into()) - } - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/src/web/metrics.rs b/src/web/metrics.rs index b4b6fcf71..8423360b3 100644 --- a/src/web/metrics.rs +++ b/src/web/metrics.rs @@ -7,7 +7,7 @@ use iron::status::Status; use prometheus::{Encoder, HistogramVec, TextEncoder}; use std::time::{Duration, Instant}; -pub fn metrics_handler(req: &mut Request) -> IronResult { +pub(super) fn metrics_handler(req: &mut Request) -> IronResult { let metrics = extension!(req, Metrics); let pool = extension!(req, Pool); let queue = extension!(req, BuildQueue); @@ -30,7 +30,7 @@ fn duration_to_seconds(d: Duration) -> f64 { d.as_secs() as f64 + nanos } -pub struct RequestRecorder { +pub(super) struct RequestRecorder { handler: Box, route_name: String, }