diff options
Diffstat (limited to 'src/handlers/blog.rs')
| -rw-r--r-- | src/handlers/blog.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/handlers/blog.rs b/src/handlers/blog.rs index e494e04..fbc0c24 100644 --- a/src/handlers/blog.rs +++ b/src/handlers/blog.rs @@ -5,21 +5,26 @@ use crate::{ templates::{self, Html, RenderRucte}, }; use lazy_static::lazy_static; -use prometheus::{IntCounterVec, register_int_counter_vec, opts}; +use prometheus::{opts, register_int_counter_vec, IntCounterVec}; use std::sync::Arc; +use tracing::{error, instrument}; use warp::{http::Response, Rejection, Reply}; lazy_static! { - static ref HIT_COUNTER: IntCounterVec = - register_int_counter_vec!(opts!("blogpost_hits", "Number of hits to blogposts"), &["name"]) - .unwrap(); + static ref HIT_COUNTER: IntCounterVec = register_int_counter_vec!( + opts!("blogpost_hits", "Number of hits to blogposts"), + &["name"] + ) + .unwrap(); } +#[instrument(skip(state))] pub async fn index(state: Arc<State>) -> Result<impl Reply, Rejection> { let state = state.clone(); Response::builder().html(|o| templates::blogindex_html(o, state.blog.clone())) } +#[instrument(skip(state))] pub async fn series(state: Arc<State>) -> Result<impl Reply, Rejection> { let state = state.clone(); let mut series: Vec<String> = vec![]; @@ -36,6 +41,7 @@ pub async fn series(state: Arc<State>) -> Result<impl Reply, Rejection> { Response::builder().html(|o| templates::series_html(o, series)) } +#[instrument(skip(state))] pub async fn series_view(series: String, state: Arc<State>) -> Result<impl Reply, Rejection> { let state = state.clone(); let mut posts: Vec<Post> = vec![]; @@ -51,12 +57,14 @@ pub async fn series_view(series: String, state: Arc<State>) -> Result<impl Reply } if posts.len() == 0 { + error!("series not found"); Err(SeriesNotFound(series).into()) } else { Response::builder().html(|o| templates::series_posts_html(o, series, &posts)) } } +#[instrument(skip(state))] pub async fn post_view(name: String, state: Arc<State>) -> Result<impl Reply, Rejection> { let mut want: Option<Post> = None; @@ -69,7 +77,9 @@ pub async fn post_view(name: String, state: Arc<State>) -> Result<impl Reply, Re match want { None => Err(PostNotFound("blog".into(), name).into()), Some(post) => { - HIT_COUNTER.with_label_values(&[name.clone().as_str()]).inc(); + HIT_COUNTER + .with_label_values(&[name.clone().as_str()]) + .inc(); let body = Html(post.body_html.clone()); Response::builder().html(|o| templates::blogpost_html(o, post, body)) } |
