feat: fixed ttl

This commit is contained in:
Elias Renman
2025-03-24 16:54:49 +01:00
parent 085be0d51f
commit ee017c01c4
4 changed files with 7 additions and 5 deletions

View File

@@ -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<Urls, Error> {
let connection = &mut establish_connection();

View File

@@ -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<NaiveDateTime>,
pub ttl: Option<DateTime<Utc>>,
}

View File

@@ -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<Redirect, (Status, &'static str)> {
}
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");
}

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { mutateUrl, type UrlUpsertDto } from "@/api/url";
import { mutateUrl } from "@/api/url";
import { ArrowDown } from "@lucide/svelte";
const mutation = mutateUrl();