From 6465350fe65e059d3c96fbe48d82c0168dfa180e Mon Sep 17 00:00:00 2001 From: Ryan Yeske Date: Sat, 2 Aug 2025 11:22:14 -0700 Subject: [PATCH] Prevent deliviries to self --- handlers/chat/post_chat_message.go | 5 ++++- migrations/008_deliveries_sender_recipient_check.sql | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 migrations/008_deliveries_sender_recipient_check.sql diff --git a/handlers/chat/post_chat_message.go b/handlers/chat/post_chat_message.go index a00e1ad..2be975a 100644 --- a/handlers/chat/post_chat_message.go +++ b/handlers/chat/post_chat_message.go @@ -73,9 +73,12 @@ func (rs Resource) PostMessage(ctx context.Context, roomID, senderID int64, body return err } - // create deliveries for each user in the room + // create deliveries for each user in the room other than the sender var deliveryIDs []int64 for _, roomUser := range roomUsers { + if senderID == roomUser.UserID { + continue + } var deliveryID int64 err = pgxscan.Get(ctx, tx, &deliveryID, `insert into deliveries(message_id, room_id, sender_id, recipient_id) values($1,$2,$3,$4) returning id`, messageID, roomID, senderID, roomUser.UserID) if err != nil { diff --git a/migrations/008_deliveries_sender_recipient_check.sql b/migrations/008_deliveries_sender_recipient_check.sql new file mode 100644 index 0000000..22d07bc --- /dev/null +++ b/migrations/008_deliveries_sender_recipient_check.sql @@ -0,0 +1,4 @@ +alter table deliveries add check(sender_id <> recipient_id); +---- create above / drop below ---- +alter table deliveries drop constraint deliveries_check; +