Only soft-delete messages
This commit is contained in:
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user