re-implement ack behaviour from version 1.0 for compat

This commit is contained in:
2023-02-03 22:51:03 +01:00
parent 01934e29b1
commit 16f6ab4861
16 changed files with 643 additions and 375 deletions

View File

@@ -14,8 +14,8 @@ const (
type Message struct {
MessageID MessageID
SenderUserID UserID
OwnerUserID UserID
SenderUserID UserID // user that sent the message
OwnerUserID UserID // oner of the message (= owner of the channel that contains it)
ChannelInternalName string
ChannelID ChannelID
SenderName *string

View File

@@ -39,6 +39,7 @@ type MessageFilter struct {
UserMessageID *[]string
OnlyDeleted bool
IncludeDeleted bool
CompatAcknowledged *bool
}
func (f MessageFilter) SQL() (string, string, sq.PP, error) {
@@ -79,7 +80,7 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
if f.Owner != nil {
filter := make([]string, 0)
for i, v := range *f.Sender {
for i, v := range *f.Owner {
filter = append(filter, fmt.Sprintf("(owner_user_id = :owner_%d)", i))
params[fmt.Sprintf("owner_%d", i)] = v
}
@@ -209,6 +210,16 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
sqlClauses = append(sqlClauses, "(usr_message_id IS NOT NULL AND ("+strings.Join(filter, " OR ")+"))")
}
if f.CompatAcknowledged != nil {
joinClause += " LEFT JOIN compat_acks AS filter_compatack_compat_acks on messages.message_id = filter_compatack_compat_acks.message_id "
if *f.CompatAcknowledged {
sqlClauses = append(sqlClauses, "(filter_compatack_compat_acks.message_id IS NOT NULL)")
} else {
sqlClauses = append(sqlClauses, "(filter_compatack_compat_acks.message_id IS NULL)")
}
}
if f.SearchString != nil {
filter := make([]string, 0)
for i, v := range *f.SearchString {