From 2a5c3c4154ada0e8c632a9edb5b1a4974c8355bd Mon Sep 17 00:00:00 2001 From: Elias Renman Date: Tue, 25 Mar 2025 11:21:08 +0100 Subject: [PATCH] feat: links expiry --- src/db/url.rs | 9 +++++++-- web/bun.lock | 3 +++ web/package.json | 1 + web/src/pages/Home/Home.svelte | 2 +- web/src/pages/Home/components/row.svelte | 6 +++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/db/url.rs b/src/db/url.rs index 8c4bcbf..be944f9 100644 --- a/src/db/url.rs +++ b/src/db/url.rs @@ -2,12 +2,17 @@ use self::db::models::Urls; use super::schema::urls::dsl::*; use super::schema::urls::*; use crate::*; -use chrono::NaiveDateTime; +use chrono::{NaiveDateTime, Utc}; use diesel::{delete, dsl::insert_into, prelude::*, result::Error}; pub fn get_entry(path: &str) -> Result { let connection = &mut establish_connection(); - urls.find(path).select(Urls::as_select()).first(connection) + let now = Utc::now().naive_utc(); + + urls.find(path) + .filter(ttl.is_null().or(ttl.gt(now))) + .select(Urls::as_select()) + .first(connection) } pub fn upsert_entry( diff --git a/web/bun.lock b/web/bun.lock index 9eda4a4..b7927d7 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -8,6 +8,7 @@ "@tailwindcss/vite": "^4.0.14", "@tanstack/svelte-query": "^5.69.0", "axios": "^1.8.4", + "date-fns": "^4.1.0", "jwt-decode": "^4.0.0", "tailwindcss": "^4.0.14", }, @@ -187,6 +188,8 @@ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "date-fns": ["date-fns@4.1.0", "", {}, "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="], + "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], diff --git a/web/package.json b/web/package.json index 8e92108..41bde47 100644 --- a/web/package.json +++ b/web/package.json @@ -23,6 +23,7 @@ "@tailwindcss/vite": "^4.0.14", "@tanstack/svelte-query": "^5.69.0", "axios": "^1.8.4", + "date-fns": "^4.1.0", "jwt-decode": "^4.0.0", "tailwindcss": "^4.0.14" } diff --git a/web/src/pages/Home/Home.svelte b/web/src/pages/Home/Home.svelte index 8fe636f..5c0d647 100644 --- a/web/src/pages/Home/Home.svelte +++ b/web/src/pages/Home/Home.svelte @@ -23,7 +23,7 @@ Shortform Destination - Expire date + Expires at Actions diff --git a/web/src/pages/Home/components/row.svelte b/web/src/pages/Home/components/row.svelte index cc3adcb..8cae82a 100644 --- a/web/src/pages/Home/components/row.svelte +++ b/web/src/pages/Home/components/row.svelte @@ -1,6 +1,7 @@