From 6c3157f049f372f78590c6d88990cd5d63160c8f Mon Sep 17 00:00:00 2001 From: Mo8it Date: Thu, 13 Oct 2022 21:59:14 +0200 Subject: [PATCH] Accept negative and missing ids --- src/db.rs | 11 +++++++++-- src/routes.rs | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/db.rs b/src/db.rs index e150973..deacc54 100644 --- a/src/db.rs +++ b/src/db.rs @@ -45,7 +45,14 @@ pub fn add_hook_log(pool: &DBPool, hook: &Hook, output: &Output) -> i32 { pub fn get_hook_log(pool: &DBPool, id: i32) -> HookLog { let conn = &mut pool.get().unwrap(); - use hooklog::dsl::hooklog; - hooklog.find(id).first(conn).unwrap() + if id >= 0 { + hooklog::dsl::hooklog.find(id).first(conn).unwrap() + } else { + hooklog::dsl::hooklog + .order(hooklog::dsl::id.desc()) + .offset((-id - 1).into()) + .first(conn) + .unwrap() + } } diff --git a/src/routes.rs b/src/routes.rs index 5c81b42..7f550ac 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -5,9 +5,15 @@ use crate::db; use crate::guards; use crate::states; -#[get("/")] -pub fn index(db_state: &State, id: i32) -> String { +#[get("/?")] +pub fn index(db_state: &State, id: Option) -> String { + let id = match id { + Some(id) => id, + None => -1, + }; + let hook_log = db::get_hook_log(&db_state.pool, id); + format!( "Hook log id: {}