From 5cd7f26717ac36e79d25c5463e16bc85fe0a890d Mon Sep 17 00:00:00 2001 From: traxys Date: Tue, 29 Aug 2023 18:48:00 +0200 Subject: [PATCH] Add a table for mail aliases --- migrations/20230829163818_aliases.sql | 8 ++++++++ src/main.rs | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 migrations/20230829163818_aliases.sql diff --git a/migrations/20230829163818_aliases.sql b/migrations/20230829163818_aliases.sql new file mode 100644 index 0000000..01c4cfa --- /dev/null +++ b/migrations/20230829163818_aliases.sql @@ -0,0 +1,8 @@ +-- Add migration script here +ALTER TABLE emails ADD COLUMN alias BOOLEAN NOT NULL DEFAULT false; + +CREATE TABLE alias_recipient ( + mail TEXT REFERENCES emails(mail) NOT NULL, + recipient TEXT NOT NULL, + PRIMARY KEY (mail, recipient) +); diff --git a/src/main.rs b/src/main.rs index 31d0051..617e944 100644 --- a/src/main.rs +++ b/src/main.rs @@ -505,9 +505,13 @@ async fn home( User(user): User, Query(query): Query, ) -> Result, Error> { - let mails = sqlx::query_as!(Mail, "SELECT mail FROM emails WHERE id = $1", user) - .fetch_all(&state.db) - .await?; + let mails = sqlx::query_as!( + Mail, + "SELECT mail FROM emails WHERE id = $1 AND alias = false", + user + ) + .fetch_all(&state.db) + .await?; let mut context = tera::Context::new(); context.insert("mails", &mails);