functional tracing
This commit is contained in:
@@ -1 +1 @@
|
||||
pub mod pdf;
|
||||
pub mod pdf;
|
||||
|
||||
@@ -4,10 +4,11 @@ use std::io::prelude::*;
|
||||
|
||||
use headless_chrome::Browser;
|
||||
use headless_chrome::{types::PrintToPdfOptions, LaunchOptions};
|
||||
use log::error;
|
||||
use rocket::{get, Response, futures::Stream, tokio::net::UnixStream, fs::NamedFile};
|
||||
use tracing::{info_span, debug, info};
|
||||
|
||||
use crate::chromium::rocket::BrowserHolder;
|
||||
use crate::tools::rocket::TracingSpan;
|
||||
|
||||
fn generate_pdf(browser: Browser) {
|
||||
let tab = browser.new_tab().unwrap();
|
||||
@@ -35,8 +36,19 @@ fn generate_pdf(browser: Browser) {
|
||||
}
|
||||
|
||||
#[get("/cv/<username>/pdf")]
|
||||
pub async fn render_pdf_cv(username: &str, browser: BrowserHolder) -> NamedFile {
|
||||
pub async fn render_pdf_cv(username: &str, browser: BrowserHolder, tracing: TracingSpan) -> NamedFile {
|
||||
let entered_span = tracing.0.enter();
|
||||
tracing.0.record(
|
||||
"username",
|
||||
username
|
||||
);
|
||||
let span = info_span!("render_pdf", username = username);
|
||||
let entered_inner_span = span.enter();
|
||||
info!("generate PDF");
|
||||
generate_pdf(browser.browser);
|
||||
info!("done generating");
|
||||
drop(entered_inner_span);
|
||||
drop(entered_span);
|
||||
"foo!".to_string();
|
||||
NamedFile::open("/tmp/foo.pdf").await.expect("failed to open foo.pdf")
|
||||
}
|
||||
Reference in New Issue
Block a user