use rustlavel::prelude::*;
use rustlavel::audit::{AuditExt, Builder};
pub const NAME_KEY: &str = "_name";
pub fn of(req: &Request, event: &str) -> Option<Builder> {
let builder = req.audit(event)?;
let builder = match req.try_session().and_then(|session| session.get_string(NAME_KEY)) {
Some(name) => builder.named(name),
None => builder,
};
Some(builder)
}
pub fn remember(req: &Request, name: &str) {
if let Some(session) = req.try_session() {
session.put(NAME_KEY, Json::from(name));
}
}
pub fn stamp(at: &str) -> String {
at.chars().take(19).collect()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn the_timezone_suffix_postgresql_adds_is_trimmed() {
assert_eq!(stamp("2026-09-03 04:13:27+00"), "2026-09-03 04:13:27");
assert_eq!(stamp("2026-09-03 04:13:27"), "2026-09-03 04:13:27");
assert_eq!(stamp("2026-09-03 04:13:27.123456+00"), "2026-09-03 04:13:27");
assert_eq!(stamp(""), "");
assert_eq!(stamp("2026"), "2026");
}
}