From 96f53c778ccfbac181ad8011319b19f7591d8fa5 Mon Sep 17 00:00:00 2001 From: Skyler Grey Date: Thu, 8 Jan 2026 12:15:02 +0000 Subject: [PATCH] feat(menu): allow overwriting links Change-Id: ynpwlrnlukyovnxknqnlutyxtqnttklp Previously when a link was put into menu it was impossible to overwrite it without editing the database. Instead, we can change our INSERT to an UPSERT to allow that. This lets me fix typos (such as y/bsky missing the /profile/ path) --- ...58bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json} | 4 ++-- ...c45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json.license | 3 +++ menu/src/main.rs | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) rename menu/.sqlx/{query-735cda2fe387b6b852a03ba7ccba41353667bd505f80c1cfe3ad16b738b45ba5.json => query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json} (58%) create mode 100644 menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json.license diff --git a/menu/.sqlx/query-735cda2fe387b6b852a03ba7ccba41353667bd505f80c1cfe3ad16b738b45ba5.json b/menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json similarity index 58% rename from menu/.sqlx/query-735cda2fe387b6b852a03ba7ccba41353667bd505f80c1cfe3ad16b738b45ba5.json rename to menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json index 801964c4..0b90ec52 100644 --- a/menu/.sqlx/query-735cda2fe387b6b852a03ba7ccba41353667bd505f80c1cfe3ad16b738b45ba5.json +++ b/menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO direct (\"from\", \"to\", \"owner\") VALUES ($1, $2, $3)", + "query": "INSERT INTO direct (\"from\", \"to\", \"owner\") VALUES ($1, $2, $3) ON CONFLICT (\"from\") DO UPDATE SET \"to\" = EXCLUDED.to, \"owner\" = EXCLUDED.owner", "describe": { "columns": [], "parameters": { @@ -12,5 +12,5 @@ }, "nullable": [] }, - "hash": "735cda2fe387b6b852a03ba7ccba41353667bd505f80c1cfe3ad16b738b45ba5" + "hash": "9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad" } diff --git a/menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json.license b/menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json.license new file mode 100644 index 00000000..c01f53ae --- /dev/null +++ b/menu/.sqlx/query-9eecf9b43e5458bc95fc45fe8e48d6da5edb50cdbf1e7a478faf310d6b9022ad.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Freshly Baked Cake + +SPDX-License-Identifier: CC0-1.0 diff --git a/menu/src/main.rs b/menu/src/main.rs index a72a7377..dc4f5916 100644 --- a/menu/src/main.rs +++ b/menu/src/main.rs @@ -139,7 +139,7 @@ async fn handle_create_post(headers: HeaderMap, Form(create): Form) -> R }; let create_call = sqlx::query!( - r#"INSERT INTO direct ("from", "to", "owner") VALUES ($1, $2, $3)"#, + r#"INSERT INTO direct ("from", "to", "owner") VALUES ($1, $2, $3) ON CONFLICT ("from") DO UPDATE SET "to" = EXCLUDED.to, "owner" = EXCLUDED.owner"#, create.from.to_lowercase(), create.to, owner, -- 2.43.0