From 30d5d7ed282d4eb6c4656a4147f67219a21d9145 Mon Sep 17 00:00:00 2001 From: Noah Petherbridge Date: Sat, 12 Jul 2025 11:44:38 -0700 Subject: [PATCH] Bugfix when counting deleted messages --- pkg/models/direct_messages.go | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pkg/models/direct_messages.go b/pkg/models/direct_messages.go index e226be4..8feb535 100644 --- a/pkg/models/direct_messages.go +++ b/pkg/models/direct_messages.go @@ -112,12 +112,18 @@ func (dm DirectMessage) ClearMessages(username string) (int, error) { return 0, ErrNotInitialized } - var placeholders = []interface{}{ - time.Now(), - fmt.Sprintf("@%s:%%", username), // `@alice:%` - fmt.Sprintf("%%:@%s", username), // `%:@alice` - username, - } + var ( + likes = []string{ + fmt.Sprintf("@%s:%%", username), // `@alice:%` + fmt.Sprintf("%%:@%s", username), // `%:@alice` + } + placeholders = []interface{}{ + time.Now(), + likes[0], + likes[1], + username, + } + ) // Count all the messages we'll delete. var ( @@ -125,9 +131,11 @@ func (dm DirectMessage) ClearMessages(username string) (int, error) { row = DB.Raw(` SELECT COUNT(message_id) FROM direct_messages - WHERE (channel_id LIKE ? OR channel_id LIKE ?) - OR username = ? - `, placeholders...) + WHERE ( + (channel_id LIKE ? OR channel_id LIKE ?) + OR username = ? + ) AND deleted_at IS NULL + `, likes[0], likes[1], username) ) if res := row.Scan(&count); res.Error != nil && false { return 0, res.Error