Only soft-delete messages

This commit is contained in:
2022-12-14 12:29:55 +01:00
parent 98b1e8bd80
commit 66ecad27a7
10 changed files with 238 additions and 46 deletions

View File

@@ -26,6 +26,7 @@ type Message struct {
Content *string
Priority int
UserMessageID *string
Deleted bool
}
func (m Message) FullJSON() MessageJSON {
@@ -122,6 +123,7 @@ type MessageDB struct {
Content *string `db:"content"`
Priority int `db:"priority"`
UserMessageID *string `db:"usr_message_id"`
Deleted int `db:"deleted"`
}
func (m MessageDB) Model() Message {
@@ -139,6 +141,7 @@ func (m MessageDB) Model() Message {
Content: m.Content,
Priority: m.Priority,
UserMessageID: m.UserMessageID,
Deleted: m.Deleted != 0,
}
}

View File

@@ -37,6 +37,8 @@ type MessageFilter struct {
TitleCI *string // case-insensitive
Priority *[]int
UserMessageID *[]string
OnlyDeleted bool
IncludeDeleted bool
}
func (f MessageFilter) SQL() (string, string, sq.PP, error) {
@@ -53,6 +55,14 @@ func (f MessageFilter) SQL() (string, string, sq.PP, error) {
params := sq.PP{}
if f.OnlyDeleted {
sqlClauses = append(sqlClauses, "(deleted=1)")
} else if f.IncludeDeleted {
// nothing, return all
} else {
sqlClauses = append(sqlClauses, "(deleted=0)") // default
}
if f.ConfirmedSubscriptionBy != nil {
sqlClauses = append(sqlClauses, "(subs.subscriber_user_id = :sub_uid AND subs.confirmed = 1)")
params["sub_uid"] = *f.ConfirmedSubscriptionBy