diff --git a/src/db/url.rs b/src/db/url.rs index 7057dc1..8c4bcbf 100644 --- a/src/db/url.rs +++ b/src/db/url.rs @@ -3,7 +3,7 @@ use super::schema::urls::dsl::*; use super::schema::urls::*; use crate::*; use chrono::NaiveDateTime; -use diesel::{associations::HasTable, delete, dsl::insert_into, prelude::*, result::Error, select}; +use diesel::{delete, dsl::insert_into, prelude::*, result::Error}; pub fn get_entry(path: &str) -> Result { let connection = &mut establish_connection(); diff --git a/src/dto/mod.rs b/src/dto/mod.rs index 1c1381d..d05f26c 100644 --- a/src/dto/mod.rs +++ b/src/dto/mod.rs @@ -1,9 +1,9 @@ -use chrono::NaiveDateTime; +use chrono::{DateTime, Utc}; use rocket::serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct UpsertUrlDto<'r> { pub destination_url: &'r str, - pub ttl: Option, + pub ttl: Option>, } diff --git a/src/handlers/url.rs b/src/handlers/url.rs index 66309a5..0eb9a5e 100644 --- a/src/handlers/url.rs +++ b/src/handlers/url.rs @@ -1,3 +1,4 @@ +use chrono::{DateTime, Utc}; use rocket::{http::Status, response::Redirect}; use crate::{ @@ -11,7 +12,8 @@ pub fn handle_redirect(url: &str) -> Result { } pub fn handle_upsert(owned_by: &str, url: &str, dto: UpsertUrlDto<'_>) -> (Status, &'static str) { - let row = upsert_entry(owned_by, url, dto.destination_url, dto.ttl); + let naive_local_datetime = dto.ttl.map(|dt| dt.naive_utc()); + let row = upsert_entry(owned_by, url, dto.destination_url, naive_local_datetime); if row.is_err() { return (Status::BadRequest, "Failed to upsert redirect"); } diff --git a/web/src/pages/Home/components/create.svelte b/web/src/pages/Home/components/create.svelte index a0c574f..b7c77b3 100644 --- a/web/src/pages/Home/components/create.svelte +++ b/web/src/pages/Home/components/create.svelte @@ -1,5 +1,5 @@