core: allow to accept contact requests after address is deleted (#6032)

* core: allow to accept contact requests after address is deleted

* update

* update

* plans

* ios, postgres migration

* schema

* request lock, refactor

* update simplexmq

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
spaced4ndy
2025-07-03 10:34:11 +00:00
committed by GitHub
parent 4f227518f1
commit 79041390f1
21 changed files with 243 additions and 107 deletions
@@ -9,6 +9,7 @@ import Simplex.Chat.Store.Postgres.Migrations.M20250402_short_links
import Simplex.Chat.Store.Postgres.Migrations.M20250512_member_admission
import Simplex.Chat.Store.Postgres.Migrations.M20250513_group_scope
import Simplex.Chat.Store.Postgres.Migrations.M20250526_short_links
import Simplex.Chat.Store.Postgres.Migrations.M20250702_contact_requests_remove_cascade_delete
import Simplex.Messaging.Agent.Store.Shared (Migration (..))
schemaMigrations :: [(String, Text, Maybe Text)]
@@ -17,7 +18,8 @@ schemaMigrations =
("20250402_short_links", m20250402_short_links, Just down_m20250402_short_links),
("20250512_member_admission", m20250512_member_admission, Just down_m20250512_member_admission),
("20250513_group_scope", m20250513_group_scope, Just down_m20250513_group_scope),
("20250526_short_links", m20250526_short_links, Just down_m20250526_short_links)
("20250526_short_links", m20250526_short_links, Just down_m20250526_short_links),
("20250702_contact_requests_remove_cascade_delete", m20250702_contact_requests_remove_cascade_delete, Just down_m20250702_contact_requests_remove_cascade_delete)
]
-- | The list of migrations in ascending order by date
@@ -0,0 +1,39 @@
{-# LANGUAGE QuasiQuotes #-}
module Simplex.Chat.Store.Postgres.Migrations.M20250702_contact_requests_remove_cascade_delete where
import Data.Text (Text)
import qualified Data.Text as T
import Text.RawString.QQ (r)
m20250702_contact_requests_remove_cascade_delete :: Text
m20250702_contact_requests_remove_cascade_delete =
T.pack
[r|
ALTER TABLE contact_requests DROP CONSTRAINT contact_requests_user_contact_link_id_fkey;
ALTER TABLE contact_requests ALTER COLUMN user_contact_link_id DROP NOT NULL;
ALTER TABLE contact_requests
ADD CONSTRAINT contact_requests_user_contact_link_id_fkey
FOREIGN KEY (user_contact_link_id)
REFERENCES user_contact_links(user_contact_link_id)
ON UPDATE CASCADE
ON DELETE SET NULL;
|]
down_m20250702_contact_requests_remove_cascade_delete :: Text
down_m20250702_contact_requests_remove_cascade_delete =
T.pack
[r|
ALTER TABLE contact_requests DROP CONSTRAINT contact_requests_user_contact_link_id_fkey;
ALTER TABLE contact_requests ALTER COLUMN user_contact_link_id SET NOT NULL;
ALTER TABLE contact_requests
ADD CONSTRAINT contact_requests_user_contact_link_id_fkey
FOREIGN KEY (user_contact_link_id)
REFERENCES user_contact_links(user_contact_link_id)
ON UPDATE CASCADE
ON DELETE CASCADE;
|]
@@ -349,7 +349,7 @@ ALTER TABLE test_chat_schema.contact_profiles ALTER COLUMN contact_profile_id AD
CREATE TABLE test_chat_schema.contact_requests (
contact_request_id bigint NOT NULL,
user_contact_link_id bigint NOT NULL,
user_contact_link_id bigint,
agent_invitation_id bytea NOT NULL,
contact_profile_id bigint,
local_display_name text NOT NULL,
@@ -2313,7 +2313,7 @@ ALTER TABLE ONLY test_chat_schema.contact_requests
ALTER TABLE ONLY test_chat_schema.contact_requests
ADD CONSTRAINT contact_requests_user_contact_link_id_fkey FOREIGN KEY (user_contact_link_id) REFERENCES test_chat_schema.user_contact_links(user_contact_link_id) ON UPDATE CASCADE ON DELETE CASCADE;
ADD CONSTRAINT contact_requests_user_contact_link_id_fkey FOREIGN KEY (user_contact_link_id) REFERENCES test_chat_schema.user_contact_links(user_contact_link_id) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -2689,3 +2689,6 @@ ALTER TABLE ONLY test_chat_schema.user_contact_links
ALTER TABLE ONLY test_chat_schema.xftp_file_descriptions
ADD CONSTRAINT xftp_file_descriptions_user_id_fkey FOREIGN KEY (user_id) REFERENCES test_chat_schema.users(user_id) ON DELETE CASCADE;