Skip to content

Commit

Permalink
clearing more fields in hard-deleted messages and filtering out alrea…
Browse files Browse the repository at this point in the history
…dy deleted messages
  • Loading branch information
or-else committed Nov 8, 2017
1 parent aecf3a7 commit fc51910
Showing 1 changed file with 4 additions and 39 deletions.
43 changes: 4 additions & 39 deletions server/db/rethinkdb/adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,8 @@ func (a *RethinkDbAdapter) MessageDeleteAll(topic string, clear int) error {
_, err := rdb.DB(a.dbName).Table("messages").
Between([]interface{}{topic, 0}, []interface{}{topic, maxval},
rdb.BetweenOpts{Index: "Topic_SeqId", RightBound: "closed"}).
Delete().RunWrite(a.conn)
Update(map[string]interface{}{"DeletedAt": t.TimeNow(), "From": nil, "DeletedFor": nil,
"Head": nil, "Content": nil}).Filter(rdb.Row.HasFields("DeletedAt").Not()).RunWrite(a.conn)

return err
}
Expand All @@ -903,8 +904,8 @@ func (a *RethinkDbAdapter) MessageDeleteList(topic string, forUser t.Uid, hard b
}
if hard {
_, err = rdb.DB(a.dbName).Table("messages").GetAllByIndex("Topic_SeqId", indexVals...).
Update(map[string]interface{}{"DeletedAt": t.TimeNow(),
"Content": nil}).RunWrite(a.conn)
Update(map[string]interface{}{"DeletedAt": t.TimeNow(), "From": nil, "DeletedFor": nil,
"Head": nil, "Content": nil}).Filter(rdb.Row.HasFields("DeletedAt").Not()).RunWrite(a.conn)
} else {
_, err = rdb.DB(a.dbName).Table("messages").GetAllByIndex("Topic_SeqId", indexVals...).
Update(map[string]interface{}{"DeletedFor": rdb.Row.Field("DeletedFor").Append(&t.SoftDelete{
Expand All @@ -916,42 +917,6 @@ func (a *RethinkDbAdapter) MessageDeleteList(topic string, forUser t.Uid, hard b
return err
}

/*
func addOptions(q rdb.Term, value string, index string, opts *t.BrowseOpt) rdb.Term {
var limit uint = 1024 // TODO(gene): pass into adapter as a config param
var lower, upper interface{}
if opts != nil {
if opts.Since > 0 {
lower = opts.Since
} else {
lower = rdb.MinVal
}
if opts.Before > 0 {
upper = opts.Before
} else {
upper = rdb.MaxVal
}
if value != "" {
lower = []interface{}{value, lower}
upper = []interface{}{value, upper}
}
if opts.Limit > 0 && opts.Limit < limit {
limit = opts.Limit
}
} else {
lower = []interface{}{value, rdb.MinVal}
upper = []interface{}{value, rdb.MaxVal}
}
return q.Between(lower, upper, rdb.BetweenOpts{Index: index}).
OrderBy(rdb.OrderByOpts{Index: rdb.Desc(index)}).Limit(limit)
}
*/

func deviceHasher(deviceId string) string {
// Generate custom key as [64-bit hash of device id] to ensure predictable
// length of the key
Expand Down

0 comments on commit fc51910

Please sign in to comment.